diff --git a/src/main/java/com/yongfeng/lg/springboot3jdk17/service/impl/UserServiceImpl.java b/src/main/java/com/yongfeng/lg/springboot3jdk17/service/impl/UserServiceImpl.java index 2fbf057..9462ccc 100644 --- a/src/main/java/com/yongfeng/lg/springboot3jdk17/service/impl/UserServiceImpl.java +++ b/src/main/java/com/yongfeng/lg/springboot3jdk17/service/impl/UserServiceImpl.java @@ -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 implements UserService { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b33d4ba..7370604 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -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映射文件的路径