alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.9k stars 8.57k forks source link

maven引入Druid Spring Boot Starter时不会自动引入Druid是什么原因? #2339

Closed BerryWang1996 closed 6 years ago

BerryWang1996 commented 6 years ago
<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.8</version>
</dependency>

但是查看引入的jar包,没有druid,打开druid-spring-boot-starter发现其引用的druid相关jar包都不存在 控制台: Description:

Binding to target org.springframework.boot.autoconfigure.jdbc.DataSourceProperties@7a34b7b8 failed:

Property: spring.datasource.type
Value: com.alibaba.druid.pool.DruidDataSource
Reason: Failed to convert property value of type 'java.lang.String' to required type 'java.lang.Class' for property 'type'; nested exception is java.lang.IllegalArgumentException: Cannot find class [com.alibaba.druid.pool.DruidDataSource]

Action:

Update your application's configuration

BerryWang1996 commented 6 years ago

我是在聚合工程中使用了此引用,然后我在模块中再次引用

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.8</version>
</dependency>

还是报错,然后将druid-spring-boot-starter和druid版本都改为1.1.6解决了问题,请问是我之前配置的有问题还是别的原因?

wenshao commented 6 years ago

@lihengming

wuyan2018 commented 6 years ago

遇到同样的问题,spring boot 1.5.10RELEASE+druid-spring-boot-starter 1.1.8。 如果用druid-spring-boot-starter 1.1.7, sql server 2008 报错The query timeout value -1 is not valid。真的不知道怎么用了

BerryWang1996 commented 6 years ago

楼上这个问题我也遇到过,我也是sqlserver 2008,同样的错误。 好像是springboot没有注入进去这个参数 记得好像是我是设置了validConnectionCheckerClassName这个参数后解决的,查看源码是需要ValidConnectionChecker这个接口的实现类,对应的实现有一个是MSSQLValidConnectionChecker,配置上com.alibaba.druid.pool.vendor.MSSQLValidConnectionChecker这个参数值后OK了

wuyan2018 commented 6 years ago

请问com.alibaba.druid.pool.vendor.MSSQLValidConnectionChecker这个参数在哪配置呢?谢谢 druid 1.1.8 好像 spring boot 低于2.0 不能用 @BerryWang1996

lihengming commented 6 years ago

@wuyan2018 spring.datasource.druid.valid-connection-checker-class-name=com.alibaba.druid.pool.vendor.MSSQLValidConnectionChecker

试试

wuyan2018 commented 6 years ago

@lihengming 如果用druid-spring-boot-starter 1.1.7, sql server 2008 报错The query timeout value -1 is not valid 问题,加参数 druid.validation-query-timeout: 6000已经解决了。 只是用spring boot devtool 启动后数据源没问题,修改代码后热部署就提示找不到数据源,不知道怎么解决