Java 如何判断哪些spring boot自动配置程序已激活?
在Spring引导应用程序中,我担心自动配置也会被可传递依赖项触发 可以按此处所述关闭特定的自动配置Java 如何判断哪些spring boot自动配置程序已激活?,java,spring,spring-boot,Java,Spring,Spring Boot,在Spring引导应用程序中,我担心自动配置也会被可传递依赖项触发 可以按此处所述关闭特定的自动配置 但我如何知道哪些自动配置已被激活?启动时似乎没有一致的激活日志记录。我刚刚注意到VelocityAutoConfiguration已在我的应用程序中激活,我可以禁用它,但这让我担心其他自动配置会在我不知情和不知情的情况下被激活。使用--debug启动应用程序时,会记录一份自动配置报告,其中会显示启动期间考虑的每个自动配置类,以及它是否被激活。列为正匹配的每个类都已激活,列为负匹配的每个类都未激活
但我如何知道哪些自动配置已被激活?启动时似乎没有一致的激活日志记录。我刚刚注意到VelocityAutoConfiguration已在我的应用程序中激活,我可以禁用它,但这让我担心其他自动配置会在我不知情和不知情的情况下被激活。使用
--debug
启动应用程序时,会记录一份自动配置报告,其中会显示启动期间考虑的每个自动配置类,以及它是否被激活。列为正匹配的每个类都已激活,列为负匹配的每个类都未激活
如果您的应用程序使用Spring Boot的执行器(它依赖于
org.springframework.Boot:Spring Boot starter Actuator
),那么,如问题注释中所述,您还可以使用/autoconfig
端点通过HTTP访问报告。请务必注意这些可传递的依赖项
启用或查看@EnableAutoConfiguration
报告的方式大约有5种或更多。该报告将向您展示:
--debug
作为VM参数
-Ddebug
作为环境变量
export DEBUG=true // UNIX based
set DEBUG=true // Windows based
通过向应用程序添加属性。属性
debug=true
logging.level.=debug
调整应用程序中的日志级别。属性
debug=true
logging.level.=debug
调整应用程序中报表生成器类的日志级别。属性
debug=true
logging.level.=debug
弹簧靴1.x
logging.level.org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer=debug
logging.level.org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener=debug
弹簧靴2.x
logging.level.org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer=debug
logging.level.org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener=debug
嗯,我想/autoconfig端点可以帮助实现这一点……但是我看到正面匹配和负面匹配中都提到了配置程序,所以如何判断单个正面匹配是否足以激活?在“正面”列表中的任何内容都被激活,“负面”列表中的任何内容都没有被激活。简单。我将执行器依赖项作为maven依赖项的一部分,我在控制台中看到执行器的负匹配。虽然我能够访问/info
,/profile
和其他一些,但无法访问像/application
,/health
这样的URL。为什么会这样呢?默认情况下,只有少数端点可以通过HTTP访问,所以默认情况下是安全的。您必须选择其他类。报告类已在Spring boot 2中重命名为org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener
。