如何判断哪个弹簧启动自动配置器已被激活?

时间:2014-09-23 07:21:58

标签: java spring spring-boot

在Spring Boot应用程序中,我担心AutoConfigurations也会被传递依赖项触发。

可以按照Disable Spring Boot AutoConfiguration for transitive dependencies

中的说明关闭特定的自动配置

但我如何知道哪些自动配置已被激活?启动时似乎没有一致的激活记录。我刚刚注意到VelocityAutoConfiguration已在我的应用程序中激活,我可以禁用它,但它让我担心在我不知情的情况下激活其他自动配置。

2 个答案:

答案 0 :(得分:3)

绝对要注意那些传递依赖。

您可以通过5种或更多种方式启用或查看@EnableAutoConfiguration报告。该报告将向您显示:

  1. 启用了什么
  2. 禁用了什么
  3. 排除了什么
  4. 无条件的配置
  5. 作为应用程序参数

    --debug
    

    作为VM参数

    -Ddebug
    

    作为环境变量

    export DEBUG=true // UNIX based
    set DEBUG=true // Windows based
    

    通过向application.properties

    添加属性
    debug=true
    

    调整application.properties

    中的日志级别
    logging.level.=debug
    

    application.properties

    中调整报告生成器类的日志级别
    logging.level.package.org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer=debug
    

答案 1 :(得分:2)

使用--debug启动应用程序将记录一个自动配置报告,该报告显示启动期间考虑的每个自动配置类以及是否已激活。列为正匹配的每个类都已激活,并且列为负匹配的每个类都未激活。

如果您的应用程序使用Spring Boot的Actuator(它依赖org.springframework.boot:spring-boot-starter-actuator),那么,如问题评论中所述,您还可以使用HTTP访问HTTP报告/autoconfig端点。