SpringBoot配置多数据源其中部分数据源配置文件不配置

问题

项目中遇到了配置多数据源中,其中有部分数据源在配置文件中未配置连接信息时,不对未配置的数据源进行加载,并保证服务可正常启动。

解决

使用@ConditionalOnProperty来控制注入的数据源是否生效,服务层中使用@Autowried注入持久层时加上(required = false)

具体代码

配置文件application.properties中数据源的配置为
# Oracle数据源配置 --- 参考代码 配置信息不全 customdb为自定义的
spring.datasource.customdb.url=jdbc:oracle:thin:@127.0.0.1:1521/orcl
spring.datasource.customdb.username=scott
spring.datasource.customdb.password=123@pwd
# 驱动
spring.datasource.customdb.driver-class-name=oracle.jdbc.OracleDriver
# 自定义的数据源类型,值为 要使用的连接池实现的完全限定名
spring.datasource.customdb.type=com.zaxxer.hikari.HikariDataSource
# 连接池中允许的最小连接数。缺省值:10
spring.datasource.customdb.hikari.minimum-idle=5
# 连接池中允许的最大连接数。缺省值:10
spring.datasource.customdb.hikari.maximum-pool-size=20
# 自动提交
spring.datasource.customdb.hikari.auto-commit=true
# 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟
spring.datasource.customdb.hikari.idle-timeout=50000
# 连接池名字 连接池的用户定义名称,主要出现在日志记录和JMX管理控制台中以识别池和池配置
spring.datasource.customdb.hikari.pool-name=FlyduckHikariCP
# 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒
spring.datasource.customdb.hikari.max-lifetime=1800000
# 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒
spring.datasource.customdb.hikari.connection-timeout=30000
# 数据库连接测试语句
spring.datasource.customdb.hikari.connection-test-query=SELECT 1 FROM DUAL
# 当值为false时不会加载被@ConditionalOnProperty(prefix = "customdb", name = "enable", havingValue = "true")注解的配置
customdb.enable=true
MybatisCustomdbConfig.class配置类
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值