今天发现一种特别简单的多数据源的配置,主要是基于mybatis-plus的,省去传统的复杂配置
1.首先引入pom
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${version}</version>
</dependency>
2.配置数据源
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
slave:
url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
slave_2:
url: ENC(xxxxx) # 内置加密,使用请查看详细文档
username: ENC(xxxxx)
password: ENC(xxxxx)
driver-class-name: com.mysql.jdbc.Driver
#以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2
集成druid
spring:
datasource:
druid:
min-idle: 10
max-wait: 60000
max-active: 100
initial-size: 10
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
test-on-borrow: false
test-on-return: false
test-while-idle: true
stat-view-servlet:
enabled: true
url-pattern: /druid/*
代码中 DruidDataSourceCreator 可以对druid进行配置,直接写好配置就可以
3.在mapper的接口中使用注解
image.png
这个mapper中的所有接口都从第二个库slave中查,如果需要从slave_2中查询,只需要把@DS注解中的slave改为slave_2即可。
官方文档: https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611
网友评论