问题
最近某项目上出现一个奇怪的问题,就是数据库经常隔几小时就报连接已关闭


即使是加了如下配置也依然不行,网上也没找到什么文章解释这个坑
test-on-borrow: true
test-while-idle: true
validation-query: select 1 from dual
复制代码
关于上面配置为什么能解决连接中断可以看这三篇文章
排查
网上查不到,那就只能自己推敲猜测了。因为是mybatis多数据源的配置,所以每个db我都有专门写一个config作为连接配置。

看着DataSourceConfig的代码,我突然想到,会不会是因为我使用到是DataSource默认创建方法,所以并没有读取到我写在application.yml的配置:
@Bean(name = "db1DataSource")
@ConfigurationProperties(prefix = "spring.datasource.db1")
@Primary
public DataSource dbDataSource() {
return DataSourceBuilder.create().build();
}
复制代码
果断跟进build()方法
public DataSource build() {
Class extends DataSource> type =

博客讲述了在mybatis多数据源配置下遇到的数据库连接经常断开的问题,分析了配置错误的原因,即Spring在多数据源配置时,部分参数未正确匹配到DataSource的setter方法。解决方案是调整YAML配置文件,将数据库连接池相关参数直接放在数据源配置下,而非tomcat子节点下。
最低0.47元/天 解锁文章
549

被折叠的 条评论
为什么被折叠?



