1.引入依赖: dynamic-datasource-spring-boot-starter
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
2.配置多数据源
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
datasource:
master:
url: jdbc:mysql://xxxxxx:3306/mydb?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: xxx
password: xxx
driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
slave_2:
url: jdbc:mysql://xxxxxx:3306/ylwx_pmg?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: xxx # 只读账户
password: xxx
driver-class-name: com.mysql.jdbc.Driver
这里我配置了两个数据源:master和slave_2
3.使用
@Service
public class TestModelServiceImpl extends ServiceImpl<TestModelMapper, TestModel> implements TestModelService {
@Override
@DS("slave_2")
public void saveDo(TestModel testModel) {
this.save(testModel);
}
}
@DS("slave_2") 在service中使用@Ds注解指定数据源名称即可,指定哪个 使用的就是哪个