修复了底层一个逻辑bug。
提供了对mp的原生支持。
底层代码进行了细微的性能优化
https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter
从2.1.0开始提供对mp的集成,在以前的版本你直接调用的方法是mp提供的内置方法,因其不是我们自己的方法不能切换数据源,你会得到一个NP异常。
spring: datasource: dynamic: mp-enabled: true #默认为false,不要随便开启,有微小的性能损失
// 开启后使用mp的内置方法即可注解在类上统一切换数据源, // 如果想某个方法特殊处理,请自己用一个方法包裹然后注解在该方法上。 @DS("slave") public interface UserMapper extends BaseMapper<User> { } @Service @DS("slave") public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { }
dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。
从 2.0.0 开始它适用于多种场景,常见的场景如下。
纯粹多库,各个库甚至可以是不同的数据库。
读写分离,一主多从,多主多从。
混合模式,既有主从也有单库。
本框架只做 切换数据源 这件核心的事情,并 不限制你的具体操作 ,切换了数据源可以做任何CRUD。
配置文件所有以下划线 _
分割的数据源 首部
即为组的名称,相同组名称的数据源会放在一个组下。
切换数据源即可是组名,也可是具体数据源名称,切换时默认采用负载均衡机制切换。
默认的数据源名称为 master ,你可以通过spring.datasource.dynamic.primary修改。
方法上的注解优先于类上注解。
强烈建议在 主从模式 下遵循普遍的规则,以便他人能更轻易理解你的代码。
主数据库 建议
只执行 INSERT
UPDATE
DELETE
操作。
从数据库 建议
只执行 SELECT
操作。