多数据源
dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。这是一个第三方 mybatis 扩展库,与 mybatis-plus 本身无关,属于参与者小锅盖个人发起的项目。和MP结合的很好,而且操作多数据源时使用很方便。所以这里来介绍下使用。
DS文档地址:https://www.kancloud.cn/tracy5546/dynamic-datasource/2398947
文档是收费,基本使用本文档介绍的内容即可。
@DS的使用
1.springboot三板斧之添加依赖
2.springboot三板斧之多数据源配置
Druid>HikariCp>BeeCp>DBCP2>Spring Basic。
3.使用@DS切换数据源
@DS 可以注解在方法上或类上,同时存在就近原则 方法上注解 优先于 类上注解。
注解 | 结果 |
---|
没有@DS | 默认数据源 |
@DS(“dsName”) | dsName可以为组名也可以为具体某个库的名称 |
这里一般@DS是注解到serviceImpl的方法上,如事务注解一样。但是当你一个service要操作多个数据源时,
可以把@DS注解到Mapper上。如:
@DSTransactional的使用
此注解是处理多数据源事务的。这个比seata等在使用上简单很多,只要在方法上加上这个注解,多数据源的数据库操作均能回滚。如下例子:
注意:
@DSTransactional在@Test方法中不生效的。应该说所有aop的操作在test类中都不生效;springboot中的之所以能支持
@Transactional是做了特殊的处理。