🚧 配置动态数据源配置文件

This commit is contained in:
cuianbing
2026-01-22 11:03:44 +08:00
parent 8d7a013eda
commit 4aac40407e
2 changed files with 71 additions and 33 deletions

View File

@@ -1,6 +1,7 @@
package com.yongfeng.lg.springboot3jdk17.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yongfeng.lg.springboot3jdk17.entity.User;
import com.yongfeng.lg.springboot3jdk17.mapper.UserMapper;
@@ -10,6 +11,7 @@ import org.springframework.stereotype.Service;
/**
* 业务层实现类继承ServiceImpl注入Mapper即可
*/
@DS("test1")
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

View File

@@ -1,39 +1,75 @@
# Web服务端口号
server.port=8080
# 配置数据源类型为Druid
# 强烈注意Spring Boot 2.X 版本不再支持配置继承,多数据源的话每个数据源的所有配置都需要单独配置,否则配置不会生效
spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# druid相关配置文件
# MySQL8.x 驱动类固定值如果是MySQL5.7,改成 com.mysql.jdbc.Driver
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据库连接地址
spring.datasource.druid.url=jdbc:mysql://10.232.112.35:3306/springboot3-jdk17?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
# 数据库名
spring.datasource.druid.username=root
# 数据库密码
spring.datasource.druid.password=-w9M627JZeYo5p^3lbH0mqDa
# 初始化连接数
spring.datasource.druid.initial-size=5
# 最小空闲连接数
spring.datasource.druid.min-idle=5
# 最大活跃连接数
spring.datasource.druid.max-active=20
# 获取连接的最大等待时间(ms)
spring.datasource.druid.max-wait=60000
# 检测空闲连接的间隔时间
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 空闲连接的存活时间
spring.datasource.druid.min-evictable-idle-time-millis=300000
# 检测连接是否有效
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
# 空闲时检测连接有效性
spring.datasource.druid.test-while-idle=true
# 获取连接时不检测(提升性能)但是可能存在使用了废弃的会话
spring.datasource.druid.test-on-borrow=false
# 归还连接时不检测(提升性能)
spring.datasource.druid.test-on-return=false
# 开启PSCache
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.dynamic.primary=test
spring.datasource.dynamic.datasource.test.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.test.url=jdbc:mysql://10.232.112.35:3306/springboot3-jdk17?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.dynamic.datasource.test.username=root
spring.datasource.dynamic.datasource.test.password=-w9M627JZeYo5p^3lbH0mqDa
spring.datasource.dynamic.datasource.test.initialSize=5
spring.datasource.dynamic.datasource.test.minIdle=5
spring.datasource.dynamic.datasource.test.maxActive=30
spring.datasource.dynamic.datasource.test.maxWait=60000
spring.datasource.dynamic.datasource.test.timeBetweenEvictionRunsMillis=60000
spring.datasource.dynamic.datasource.test.minEvictableIdleTimeMillis=300000
spring.datasource.dynamic.datasource.test.validationQuery=SELECT 'x'
spring.datasource.dynamic.datasource.test.testWhileIdle=true
spring.datasource.dynamic.datasource.test.testOnBorrow=false
spring.datasource.dynamic.datasource.test.testOnReturn=false
spring.datasource.dynamic.datasource.test1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.test1.url=jdbc:mysql://10.232.112.35:3306/springboot3-jdk17?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.dynamic.datasource.test1.username=root
spring.datasource.dynamic.datasource.test1.password=-w9M627JZeYo5p^3lbH0mqDa
spring.datasource.dynamic.datasource.test1.initialSize=5
spring.datasource.dynamic.datasource.test1.minIdle=5
spring.datasource.dynamic.datasource.test1.maxActive=30
spring.datasource.dynamic.datasource.test1.maxWait=60000
spring.datasource.dynamic.datasource.test1.timeBetweenEvictionRunsMillis=60000
spring.datasource.dynamic.datasource.test1.minEvictableIdleTimeMillis=300000
spring.datasource.dynamic.datasource.test1.validationQuery=SELECT 'x'
spring.datasource.dynamic.datasource.test1.testWhileIdle=true
spring.datasource.dynamic.datasource.test1.testOnBorrow=false
spring.datasource.dynamic.datasource.test1.testOnReturn=false
spring.datasource.dynamic.datasource.test2.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.test2.url=jdbc:mysql://10.232.112.35:3306/springboot3-jdk17?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.dynamic.datasource.test2.username=root
spring.datasource.dynamic.datasource.test2.password=-w9M627JZeYo5p^3lbH0mqDa
spring.datasource.dynamic.datasource.test2.initialSize=5
spring.datasource.dynamic.datasource.test2.minIdle=5
spring.datasource.dynamic.datasource.test2.maxActive=30
spring.datasource.dynamic.datasource.test2.maxWait=60000
spring.datasource.dynamic.datasource.test2.timeBetweenEvictionRunsMillis=60000
spring.datasource.dynamic.datasource.test2.minEvictableIdleTimeMillis=300000
spring.datasource.dynamic.datasource.test2.validationQuery=SELECT 'x'
spring.datasource.dynamic.datasource.test2.testWhileIdle=true
spring.datasource.dynamic.datasource.test2.testOnBorrow=false
spring.datasource.dynamic.datasource.test2.testOnReturn=false
# 下面的这些配置在Springboot2.x之后使用动态数据源全部都不生效了
# 参考官方文档 https://github.com/alibaba/druid/blob/master/druid-spring-boot-starter/README.md
#spring.datasource.dynamic.druid.initialSize=5
#spring.datasource.dynamic.druid.minIdle=5
#spring.datasource.dynamic.druid.maxActive=30
#spring.datasource.dynamic.druid.maxWait=60000
#spring.datasource.dynamic.druid.timeBetweenEvictionRunsMillis=60000
#spring.datasource.dynamic.druid.minEvictableIdleTimeMillis=300000
#spring.datasource.dynamic.druid.validationQuery=SELECT 'x'
#spring.datasource.dynamic.druid.testWhileIdle=true
#spring.datasource.dynamic.druid.testOnBorrow=false
#spring.datasource.dynamic.druid.testOnReturn=false
#spring.datasource.dynamic.druid.poolPreparedStatements=true
#spring.datasource.dynamic.druid.maxPoolPreparedStatementPerConnectionSize=20
#spring.datasource.dynamic.druid.filters=stat,wall,slf4j,config
#spring.datasource.dynamic.druid.useGlobalDataSourceStat=true
#spring.datasource.dynamic.druid.stat.log-slow-sql=true
#spring.datasource.dynamic.druid.stat.merge-sql=true
#spring.datasource.dynamic.druid.stat.slow-sql-millis=10000
# MyBatis-Plus配置文件
# 配置Mapper.xml映射文件的路径