SpringBoot基于注解形式配置多数据源@DS
•
人工智能
@TOC()
1.引入依赖
com.baomidou
dynamic-datasource-spring-boot-starter
3.5.2
2.配置文件 application-pro.yml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
dynamic:
# 设置默认的数据源或者数据源组,默认值即为 master
primary: master
# 严格模式 匹配不到数据源则报错
strict: true
datasource:
# 主库从库名字自定义
# 主库
master:
driver-class-name: com.mysql.cj.jdbc.Driver
username: xxx
password: xxxxx
url: jdbc:mysql://192.168.1.1:3306/database1?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai
# 从库1
slave:
driver-class-name: com.mysql.cj.jdbc.Driver
username: xxx
password: xxxxx
url: jdbc:mysql://192.168.1.2:3307/database2?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai
# 从库2
slave2:
driver-class-name: com.mysql.cj.jdbc.Driver
username: xxx
password: xxxxx
url: jdbc:mysql://192.168.1.3:3308/database3?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai
druid:
enable: true
max-active: 150
min-idle: 50
initial-size: 50
max-wait: 60000
time-between-eviction-runs-millis: 60000
validation-query: select server_status()
test-on-return: false
test-while-idle: true
test-on-borrow: false
async-close-connection-enable: true
async-init: true
3.对应mapper接口使用不同的数据源
import com.baomidou.dynamic.datasource.annotation.DS;
@Mapper
public class UserService {
// m默认使用名为 "master" 的数据源
public void updateUser(User user) {
// 创建用户
}
@DS("master") // 使用名为 "master" 的数据源
public void createUser(User user) {
// 创建用户
}
@DS("slave") // 使用名为 "slave" 的数据源
public User getUserById(long id) {
// 根据ID获取用户
return null;
}
@DS("slave1") // 使用名为 "slave1" 的数据源
public User getUserById(long id) {
// 根据ID获取用户
return null;
}
// 其他方法...
}
4.对应mapper接口使用相同的数据源
import com.baomidou.dynamic.datasource.annotation.DS;
// 使用名为 "master" 的数据源
@Mapper
@DS("master")
public class UserService {
public void createUser(User user) {
// 创建用户
}
public User getUserById(long id) {
// 根据ID获取用户
return null;
}
public User getUserById(long id) {
// 根据ID获取用户
return null;
}
// 其他方法...
}
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/742236a80b.html
