刚开始学springboot,一个双数据源卡了好久,最后看HikariPool源码搞定了。
springboot 2.x默认的数据源变成了HikariPool了,弄了一个demo在使用数据源的时候系统报错
HikariPool-1 - Driver does not support get/set network timeout for connections. (null)
通过源码排查到连接验证有两种方式,一种是HikariPool自带的,具体逻辑没看,如果没适配对应的驱动就会报上面的错误;另一种是使用ConnectionTestQuery 这个属性来验证。那行代码大概就是
boolean isUseJdbc4Validation = getConnectionTestQuery == null;
如果这个属性没有配置,则使用默认的,若配置了,则使用自行配置的。所以只需要配置一下测试脚本即可。
spring:
datasource:
//url、username、password等通用的属性省略
ConnectionTestQuery: SELECT 1