小编dla*_*law的帖子

spring-boot-started-web是否应该依赖于jboss-logging?

Spring Boot 1.1.8.RELEASE依赖于spring-boot-starter-web导致对hibernate-validator的依赖,而hibernate-validator依赖于jboss-logging.

对jboss-logging的依赖导致jboss日志记录通过logback接管日志记录输出,这也是一个依赖项,并且是spring-boot的常用记录器.至少,这就是我发生的事情.即使在启动时指定logback.configurationFile系统属性,也会完全忽略logback.xml文件.

我知道可以在maven或gradle中排除jboss-logging,但这真的需要吗?spring-boot-starter-web应该指定排除本身吗?

这是应用程序启动时的输出:

12:56:42,137 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Slf4jLoggerProvider
12:56:42,145 [main] INFO  o.h.validator.internal.util.Version - HV000001: Hibernate Validator 5.0.3.Final
12:56:42,206 [main] DEBUG o.h.v.i.e.r.DefaultTraversableResolver - Cannot find javax.persistence.Persistence on classpath. Assuming non JPA 2 environment. All properties will per default be traversable.
Run Code Online (Sandbox Code Playgroud)

但是如果在maven中使用exclude删除jboss-logging依赖关系,则在运行时从应用程序上下文启动获得堆栈跟踪.

16:56:30,956 [main] WARN  o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1554) ~[spring-beans-4.0.7.RELEASE.jar!/:4.0.7.RELEASE] …
Run Code Online (Sandbox Code Playgroud)

logging jboss hibernate logback spring-boot

5
推荐指数
0
解决办法
2212
查看次数

标签 统计

hibernate ×1

jboss ×1

logback ×1

logging ×1

spring-boot ×1