最开始遇到这个错误,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的依赖,遇到问题最好看出处的解释,要不然会踩很多坑。