Skip to content

自动配置报告

Spring Boot 提供了自动配置报告(Auto-Configuration Report),它可以帮助开发者了解哪些自动配置类被应用了,哪些没有,并且提供了未应用的原因。这对于调试和理解应用程序的启动过程非常有用。

启用

要启用自动配置报告,可以通过设置 debug 属性为 true 来实现。这可以通过多种方式完成:

1. application.propertiesapplication.yml

你可以在你的配置文件中添加如下属性:

properties
# application.properties
debug=true
yaml
# application.yml
debug: true

2. 通过命令行参数

当启动应用程序时,可以通过命令行传递 -Ddebug=true 参数:

bash
java -jar myapp.jar -Ddebug=true

3. 环境变量

你也可以通过设置环境变量 DEBUGtrue

bash
export DEBUG=true

查看

一旦启用了调试模式,Spring Boot 将会在控制台输出详细的自动配置报告。报告分为两个部分:

  • Positive matches:列出了所有匹配并成功应用的自动配置类。
  • Negative matches:列出了所有不匹配或未应用的自动配置类,并说明了为什么它们没有被应用。

控制台输出

当你以调试模式启动应用程序时,你会在控制台看到类似如下的输出:

text
...
=========================
AUTO-CONFIGURATION REPORT
=========================


Positive matches:
-----------------

   DataSourceAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType'; @ConditionalOnMissingBean (types: javax.sql.DataSource; SearchStrategy: all) did not find any beans (OnBeanCondition)

Negative matches:
-----------------

   MongoDataAutoConfiguration did not match:
      - Required class 'com.mongodb.MongoClient' not found, spring-boot-starter-data-mongodb is not on the classpath (OnClassCondition)
...

日志文件

如果应用程序的日志被重定向到文件,那么自动配置报告也会写入该日志文件中。你可以检查日志文件来获取这些信息。

使用 Actuator 端点

如果你的应用程序使用了 Spring Boot Actuator,还可以通过 HTTP 请求访问自动配置报告。你需要确保 spring-boot-starter-actuator 已经添加到了项目依赖中,并且启用了相应的端点。

配置 conditions 端点

为了能够通过 HTTP 访问条件评估报告,需要确保 conditions 端点是可用的:

yaml
management:
  endpoints:
    web:
      exposure:
        include: "conditions"

访问端点

然后你可以通过浏览器或工具(如 curl)访问 /actuator/conditions 端点来获取 JSON 格式的自动配置报告:

bash
curl http://localhost:8080/actuator/conditions

返回的 JSON 数据将包含详细的条件评估信息,类似于控制台输出的内容。