第一步引入依赖(pom.xml)
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
第二步application.yml配置
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
url: jdbc:mysql://127.0.0.1:3306/master?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
slave:
url: jdbc:mysql://10.0.0.1:3306/slave?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
#......省略
#以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2
#mybatis
mybatis:
#扫描Mapper接口对应的XML文件
mapper-locations:
- classpath*:mapper/*.xml
#使用mybatis.type-aliases-package来指定POJO扫描包来让mybatis自动扫描到自定义的POJO。
type-aliases-package: com.test.check.dao
#如果查询语句中某些字段值是null的,则这个字段就无法返回。对于后台数据处理来说,这是一个致命的问题,于是通过修改Mybatis的配置来解决这个问题。返回一个null的值
configuration:
call-setters-on-nulls: true
# 服务配置
server:
port: 8088
第三步,配置@DS("master")
@DS注解执行优先级方法大于类