首先感谢 @心跳 捐赠的200元大红包,又可以给娃买罐奶粉了。
https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter
dynamic-datasource-spring-boot-starter是一个基于springboot的快速集成多数据源的启动器。
其支持 Jdk 1.7+, SpringBoot 1.4.x 1.5.x 2.0.x 。最新版为2.3.2
演示例子可参考项目下的samples目录
2.3.x版本主要做了以下改动。
重构创建数据源类。废弃DataSourceFactory,改为Bean的DynamicDataSourceCreator。
自动适配mybatisPlus。 移除参数的mp-enabled。
新特性支持spel参数获取数据源。( 重要 重要 重要 )
@DS("#session.tenantName")//从session获取 public List selectSpelBySession() { return userMapper.selectUsers(); } @DS("#header.tenantName")//从header获取 public List selectSpelByHeader() { return userMapper.selectUsers(); } @DS("#tenantName")//使用spel从参数获取 public List selectSpelByKey(String tenantName) { return userMapper.selectUsers(); } @DS("#user.tenantName")//使用spel从复杂参数获取 public List selecSpelByTenant(User user) { return userMapper.selectUsers(); }
如果你还想对spel解析的参数进行进一步处理,请注入 DynamicDataSourceSpelResolver
。
默认的 DefaultDynamicDataSourceSpelResolver
没有对解析到的参数进行处理直接返回。
如果有问题可 直接提ISSUE.