最开始遇到这个错误,Caused by: java.lang.ClassNotFoundException: com.alibaba.druid.filter.logging.Log4j2Filter
百度,网上一堆的清一色解决方案,缺少log4j,引入log4j相关依赖,或者引入slf4j-over-log4j的依赖,但是好像都不行,最后还是谷歌靠谱,直接检索出github上的解决方案,这才解决了问题。
查看github的解决方案:https://github.com/alibaba/druid/issues/2942
如果网络比较慢,访问不了github也没有关系,看下面就好。
你安装的应该是低版本的druid没有这个类,升级到新版;指定druid-spring-boot-starter但没指定druid也可能出现这个错误
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
添加druid starter包的同时,也要添加druid的包即可解决报错。
此外对于validation-query属性,不同的数据库值也不一样。
DataBase | validation-query |
---|---|
hsqldb | select 1 from INFORMATION_SCHEMA.SYSTEM_USERS |
Oracle | select 1 from dual |
DB2 | select 1 from sysibm.sysdummy1 |
MySql | select 1 |
Microsoft SqlServer | select 1 |
postgresql | select version() |
ingres | select 1 |
derby | select 1 |
H2 | select 1 |
类似的坑我遇到过的还有在使用pageHelper时,只引入starter依赖项目启动就报错,查看官方的解释需要引入jsqlparser.Jar的依赖,遇到问题最好看出处的解释,要不然会踩很多坑。