pom依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.6.1</version>
</dependency>
主从配置
package com.baomidou.config;
import com.baomidou.dynamic.datasource.plugin.MasterSlaveAutoRoutingPlugin;
import com.baomidou.interceptor.MasterSlaveAutoRoutingOrSelectByRulePlugin;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MasterSlaveAutoRoutingPluginConfig {
@Bean
public MasterSlaveAutoRoutingPlugin masterSlaveAutoRoutingPlugin(){
return new MasterSlaveAutoRoutingPlugin();
}
}
yml
server:
port: 9914
servlet:
context-path: /baomidou
logging:
level:
com.baomidou.dynamic: debug
spring:
datasource:
dynamic:
primary: master # 这里需要修改
strict: true
hikari:
pool-name: Yi_HikariCP
minimum-idle: 5
maximum-pool-size: 20
datasource:
# 测试
master:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3396/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: admin
password: ufcz2b8x3bas4c5m$%332
driver-class-name: com.mysql.cj.jdbc.Driver
slave_1:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3397/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: readonly
password: 123qwe!@#
driver-class-name: com.mysql.cj.jdbc.Driver
slave_2:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3397/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: readonly
password: 123qwe!@#
driver-class-name: com.mysql.cj.jdbc.Driver
#seata事务生效
seata: true
seata-mode: at
seata:
enabled: true
application-id: baomidou-seata
#不使用自动代理数据源
enable-auto-data-source-proxy: false
#================================================= mybatis-plus start =================================================
mybatis-plus:
# classpath:/mapper
使用方式
根据@DS 注解切换数据源
@DS("master")
或
@DS("slave")