【发布时间】:2018-07-14 23:23:08
【问题描述】:
我对 Spring 和 Spring Boot 还很陌生,并被要求从事遗留的 Spring Boot 项目。我应该在项目中包含一些由 Spring Boot 提供的FailureAnalyzers。根据我遇到的教程(如here),需要做的就是在 META-INF/spring.factories 文件中注册几个 FailureAnalyzer 类。
但是当我构建项目(使用 Maven)时,我在 target/META-INF 目录中看不到 spring.factories 文件。我尝试自己添加一个,但项目似乎没有读取它。我错过了什么?我应该怎么做才能注册这些FailureAnalyzer?
如果需要,spring.factories 文件如下所示:
org.springframework.boot.diagnostics.FailureAnalyzer=\
org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.BeanCurrentlyInCreationFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.BeanNotOfRequiredTypeFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.BindFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.ConnectorStartFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.NoUniqueBeanDefinitionFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.PortInUseFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer
【问题讨论】:
-
默认注册了,为什么还要手动注册?!您只需要注册自己的自定义分析器,而不是默认的。
-
资源下有 META-INF 文件夹吗?见stackoverflow.com/questions/17531625/…
-
没有必要这样做,Spring Boot 本身已经提供了它们。如果你能描述一下你真正想做的事情会有所帮助。
-
@StephaneNicoll 我使用 spring 初始化程序创建了 spring boot gradle 项目。但是我在我的项目中的任何地方都没有看到
spring.factories。只是想知道它在哪里 -
那里不需要
spring.factories。请不要评论无关的问题并创建自己的更多详细信息
标签: java spring maven spring-boot