liveBook · Manning

Autoconfiguration report

As explained in Spring in Action, Sixth Edition

An autoconfiguration report is a diagnostic record of conditional configurations that matched, did not match, or were applied unconditionally.

An autoconfiguration report is a diagnostic record that explains why Spring Boot configuration was applied, skipped, or applied without conditions. Requesting GET /conditions shows the decisions made during autoconfiguration. section 15.2.2

Read the report through three result groups:

  • Positive matches show conditional configurations whose conditions passed. section 15.2.2
  • Negative matches show conditional configurations whose conditions failed, including the condition that prevented activation. section 15.2.2
  • Unconditional classes show configurations applied without conditional checks. section 15.2.2

Typical decisions

A positive match can show MongoTemplate autoconfiguration succeeding because @ConditionalOnMissingBean found no existing MongoTemplate bean. A negative match can show DispatcherServlet autoconfiguration skipped because @ConditionalOnClass could not find DispatcherServlet. ConfigurationPropertiesAutoConfiguration can appear among unconditional classes. section 15.2.2

{
  "contexts": {
    "application-1": {
      "positiveMatches": {
...
        "MongoDataAutoConfiguration#mongoTemplate": [
          {
            "condition": "OnBeanCondition",
            "message": "@ConditionalOnMissingBean (types:
                org.springframework.data.mongodb.core.MongoTemplate;
                SearchStrategy: all) did not find any beans"
          }
        ],
...
      },
      "negativeMatches": {
...
        "DispatcherServletAutoConfiguration": {
          "notMatched": [
            {
              "condition": "OnClassCondition",
              "message": "@ConditionalOnClass did not find required
                  class 'org.springframework.web.servlet.
                                                 DispatcherServlet'"
            }
          ],
          "matched": []
        },
...
      },
      "unconditionalClasses": [
...
        "org.springframework.boot.autoconfigure.context.
                          ConfigurationPropertiesAutoConfiguration",
...
      ]
    }
  }
}

Inspect the structured /conditions response to connect each decision with its condition type and diagnostic message. section 15.2.2

How Spring in Action, Sixth Edition covers it

How deep it goes
Explains positive, negative, and unconditional results with condition messages, but stops short of describing autoconfiguration internals.
Examples
Uses MongoTemplate, DispatcherServlet, and ConfigurationPropertiesAutoConfiguration to illustrate matched, failed, and unconditional decisions.
What it assumes
Assumes familiarity with Spring Boot beans and annotations while introducing conditional configuration through concrete examples.
What you can do after
Diagnose why expected autoconfiguration did or did not occur by inspecting condition results and messages.
How it connects
Connects autoconfiguration with conditional annotations, Spring Boot Actuator, beans, and configuration properties.

This explainer was generated by Manning's knowledge graph from the text of Spring in Action, Sixth Edition. The section links point to the parts of the book it draws on.