-
原因:slf4j-log4j12模塊的目的是將對 SLF4J 的調用重定向到 log4j。log4j-over-slf4j模塊的目的是將對 log4j 記錄器的調用重定向到 SLF4J。如果 SLF4J 與
slf4j-log4j12.jar
綁定, 並且log4j-over-slf4j.jar
也存在於ClassPath中,第一次調用 SLF4J 或 log4j logger 后不可避免地會立即發生StackOverflowError
-
解決方案:
-
點擊項目,Maven——Show Diagram
-
搜索slf4j-log4j12(這里我已經排除依賴了,就用log4j-to-slf4j舉例子)
-
找到對應的依賴雙擊,再右鍵——Exclude即可
-
最后觀察pom文件可以看到即可,重新啟動項目即可
<dependency> <groupId>com.youzan.cloud</groupId> <artifactId>dennis-chain-baihuo-biz</artifactId> <version>${project.version}</version> <exclusions> <exclusion> <artifactId>slf4j-log4j12</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency>
-