[关闭]
@File 2019-10-08T09:32:41.000000Z 字数 1397 阅读 123

spring-boot-dynamic 读写分离

web java


相关连接

dynamic官方说明

1. 依赖

  1. <!-- dynamic -->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
  5. <version>2.5.6</version>
  6. </dependency>
  7. <!-- druid连接池 -->
  8. <dependency>
  9. <groupId>com.alibaba</groupId>
  10. <artifactId>druid-spring-boot-starter</artifactId>
  11. <version>1.1.9</version>
  12. </dependency>

2. 配置

  1. spring:
  2. datasource:
  3. dynamic:
  4. primary: master #设置默认的数据源或者数据源组,默认值即为master
  5. strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
  6. datasource:
  7. # 主
  8. master:
  9. url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
  10. username:
  11. password:
  12. driver-class-name: com.mysql.jdbc.Driver
  13. # 从
  14. slave_1:
  15. url: jdbc:mysql://127.0.0.1:3307/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
  16. username:
  17. password:
  18. driver-class-name: com.mysql.jdbc.Driver
  1. spring:
  2. datasource:
  3. dynamic:
  4. datasource:
  5. master_1:
  6. master_2:
  7. slave_1:
  8. slave_2:
  9. slave_3:
  1. spring:
  2. datasource:
  3. dynamic:
  4. datasource:
  5. mysql:
  6. oracle:
  7. sqlserver:
  8. postgresql:
  9. h2:

排除 DruidDataSourceAutoConfigure

  1. @SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)

4. @DS的使用

  1. // 声明类中所有方法默认使用的库
  2. // 匹配 slave_1 slave_2 slave_3
  3. @DS("slave")
  4. public class DemoServiceImpl implements DemoService{
  5. @Override
  6. public List<DB> findAll(){}
  7. // 单独声明该方法使用的库
  8. // 只匹配 slave_1
  9. @DS("slave_1")
  10. @Override
  11. public DB findById(int id){}
  12. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注