Mybatis注入多数据源并动态切换的一种方法
当我们需要分库分表分兼容多个mysql集群的时候,如果不使用相应的中间件,也可以使用spring自带的动态切换数据源的抽象类来达到这个目的。
step1:创建一个定义多数据源枚举待用
1 | /** |
step2:创建一个线程安全的上下文类来获取step1中的枚举值
1 | /** |
step3:创建一个动态数据源继承自spring的动态数据源抽象类,并获取到相应的数据源枚举值
1 | /** |
step4:将step3的动态数据源注入到mybatis初始化sqlSessionFactoryBean中,这里采用的是MP的注入方式
1 | /** |
step5:事务管理中的动态数据源同样使用step3创建的动态数据源注入
1 | (name = "txManager") |
finally:配置的细节需要自己丰富,除此之外,就请愉快的使用吧,
使用 Demo:
1 |
|