详情提示:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/maven-repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/maven-repository/org/apache/logging/log4j/log4j-slf4j-impl/2.11.2/log4j-slf4j-impl-2.11.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
具体是StaticLoggerBinder这个类加载冲突了,在两个jar包中都找到了,而且路径也都一模一样,原因知道了,解决方法就简单了,直接去掉一个。
解决办法:
因为有很多依赖引入了子依赖,所以很难找出在哪里引入的这个依赖。这里就要用到 maven分析工具 啦
插件下载两种途径:
1、直接在idea搜索插件:Maven Helper
2、工具下载地址:https://plugins.jetbrains.com/plugin/7179-maven-helper/versions
下载完成重启idea后,打开pom文件,左下角就多了个 Dependency Analyzer
进入Dependency Analyzer 搜索slf4j
这就找到了原因,是因为引入了两个日志框架,留下我们想要的log4j2就可以啦。用<exclusion>标签排除另一个依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<!--移除框架中的logback依赖-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>