问题描述:
SpringBoot集成Druid,版本:druid-1.1.10.jar,启动的时候报错:testWhileIdle is true, validationQuery not set。但是不影响系统使用,数据库等一切访问正常。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
网上资料的解决方案:
spring.datasource.test-while-idle=true spring.datasource.validation-query=SELECT 1
但是发现还是不起作用,仍然报错。为什么不起作用呢,因为springboot1.4取消spring.datasource.type
查看源码:druid-1.1.10.jar
在com.alibaba.druid.pool下的DruidDataSource.class类中,大家搜索validationQuery not set关键字,发现错误是从这里面报出来的,因为validationQuery这个属性是空的,所以大家前面的配置根本就没有生效。
最终解决方案:
配置不变
spring.datasource.test-while-idle=true
spring.datasource.validation-query=SELECT 1
代码里加上配置类
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource(){
return new DruidDataSource();
}
}
参考文章:
springboot连接数据库报错testWhileIdle is true, validationQuery not set - 瘦鱼 - 博客园
SpringBoot集成Druid_云鼎的博客-CSDN博客_集成druid
|