当前位置:   article > 正文

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

mybitas 多数据yuan

1 由于项目需要,需要将不同来源的数据存入不同的数据库,所以需要根据入参的信息动态切换数据源

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

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

 

 

2创建一个新的类 MultiDataSource

public class MultiDataSource extends AbstractRoutingDataSource {

  1. private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();
  2. public static void setDataSourceKey(String dataSource) {
  3. dataSourceKey.set(dataSource);
  4. }
  5. @Override
  6. protected Object determineCurrentLookupKey() {
  7. return dataSourceKey.get();
  8. }

}

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

 

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



 

4 将配置的dataSource 添加到sessionFactory 中 


 

5 将sessionFactory 注入到sqlSession中

 

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

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

转载于:https://my.oschina.net/u/3611008/blog/1941443

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/67822
推荐阅读
相关标签
  

闽ICP备14008679号