spring+mybitas 实现多数据源动态切换

1 因为项目须要,须要将不一样来源的数据存入不一样的数据库,因此须要根据入参的信息动态切换数据源java

项目core层采用了spring+mybitas 方式进行架构spring

1 在spring的配置中定义两个数据源 sql

 

 

2建立一个新的类 MultiDataSource数据库

public class MultiDataSource extends AbstractRoutingDataSource {session

private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();

public static void setDataSourceKey(String dataSource) {
    dataSourceKey.set(dataSource);
}

@Override
protected Object determineCurrentLookupKey() {
    return dataSourceKey.get();
}

}架构

这个类须要继承 AbstractRoutingDataSource 
而且重写 determineCurrentLookupKey方法 
3 在spring 的配置文件中新增配置ide

 

<map key-type="java.lang.String">
     <entry value-ref="dataSource1" key="dataSource1"></entry>
     <entry value-ref="dataSource2" key="dataSource2"></entry>
  </map>



 

4 将配置的dataSource 添加到sessionFactory 中 


 code

5 将sessionFactory 注入到sqlSession中

 继承

6 动态切换数据源决定采用spring-aop 添加切点 去进行动态切换get

6.1 新建数据切换类 public class DataBaseAop {

相关文章
相关标签/搜索