前提:只用spring-boot整合druid時啓動報這個錯誤
springboot版本 2.1.7.RELEASE
druid版本 1.1.8
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Priority
at java.lang.Class.forName0(Native Method) ~[na:1.8.0_161]
at java.lang.Class.forName(Class.java:264) ~[na:1.8.0_161]
at com.alibaba.druid.util.Utils.loadClass(Utils.java:203) ~[druid-1.1.8.jar:1.1.8]
at com.alibaba.druid.filter.FilterManager.loadFilter(FilterManager.java:104) ~[druid-1.1.8.jar:1.1.8]
at com.alibaba.druid.pool.DruidAbstractDataSource.addFilters(DruidAbstractDataSource.java:1286) ~[druid-1.1.8.jar:1.1.8]
at com.alibaba.druid.pool.DruidAbstractDataSource.setFilters(DruidAbstractDataSource.java:1275) ~[druid-1.1.8.jar:1.1.8]
... 71 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Priority
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_161]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_161]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) ~[na:1.8.0_161]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_161]
... 77 common frames omitted
原因是在druid的監控中配置了log4j
# 配置監控統計攔截的filters,去掉後監控界面sql無法統計,'wall'用於防火牆
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
解決辦法:把 filters: stat,wall,log4j 中的log4j去掉即可。