1. Обзор
Механизм автоматической настройки в Spring Boot пытается автоматически настроить приложение на основе его зависимостей.
В этом кратком руководстве мы увидим, как Spring Boot может регистрировать отчет об автоматической настройке во время запуска.
2. Пример приложения
Давайте напишем простое приложение Spring Boot, которое мы будем использовать в наших примерах:
@SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
3. Подход к свойствам приложения
При запуске этого приложения мы не получаем много информации о том, как и почему Spring Boot решил составить конфигурацию нашего приложения.
Но мы можем заставить Spring Boot создать отчет, просто включив режим отладки в нашем файле application.properties :
debug=true
Или наш application.yml файл:
debug: true
4. Подход Командной строки
Или, если мы не хотим использовать подход к файлу свойств, мы можем запустить отчет об автоматической настройке, запустив приложение с помощью переключателя –debug :
$ java -jar myproject-0.0.1-SNAPSHOT.jar --debug
5. Вывод отчета
Отчет об автоматической настройке содержит информацию о классах, которые Spring Boot нашел в пути к классам и настроил автоматически. Он также показывает информацию о классах, которые, как известно, загружаются весной, но не были найдены в пути к классам.
И, поскольку мы установили debug=true , мы видим это в наших выходных данных:
============================ CONDITIONS EVALUATION REPORT ============================ Positive matches: ----------------- AopAutoConfiguration matched: - @ConditionalOnClass found required classes 'org.springframework.context.annotation.EnableAspectJAutoProxy', 'org.aspectj.lang.annotation.Aspect', 'org.aspectj.lang.reflect.Advice', 'org.aspectj.weaver.AnnotatedElement'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition) - @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition) AopAutoConfiguration.CglibAutoProxyConfiguration matched: - @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition) AuditAutoConfiguration#auditListener matched: - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.audit.listener.AbstractAuditListener; SearchStrategy: all) did not find any beans (OnBeanCondition) AuditAutoConfiguration.AuditEventRepositoryConfiguration matched: - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.audit.AuditEventRepository; SearchStrategy: all) did not find any beans (OnBeanCondition) AuditEventsEndpointAutoConfiguration#auditEventsEndpoint matched: - @ConditionalOnBean (types: org.springframework.boot.actuate.audit.AuditEventRepository; SearchStrategy: all) found bean 'auditEventRepository'; @ConditionalOnMissingBean (types: org.springframework.boot.actuate.audit.AuditEventsEndpoint; SearchStrategy: all) did not find any beans (OnBeanCondition) - @ConditionalOnEnabledEndpoint no property management.endpoint.auditevents.enabled found so using endpoint default (OnEnabledEndpointCondition) Negative matches: ----------------- ActiveMQAutoConfiguration: Did not match: - @ConditionalOnClass did not find required classes 'javax.jms.ConnectionFactory', 'org.apache.activemq.ActiveMQConnectionFactory' (OnClassCondition) AopAutoConfiguration.JdkDynamicAutoProxyConfiguration: Did not match: - @ConditionalOnProperty (spring.aop.proxy-target-class=false) did not find property 'proxy-target-class' (OnPropertyCondition) ArtemisAutoConfiguration: Did not match: - @ConditionalOnClass did not find required classes 'javax.jms.ConnectionFactory', 'org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory' (OnClassCondition) AtlasMetricsExportAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.micrometer.atlas.AtlasMeterRegistry' (OnClassCondition) AtomikosJtaConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.atomikos.icatch.jta.UserTransactionManager' (OnClassCondition)
6. Заключение
В этом кратком руководстве мы рассмотрели, как отобразить и прочитать отчет об автоматической настройке Spring Boot.
И, как всегда, исходный код для приведенного выше примера можно найти на GitHub .