Перейти к основному содержимому

Показать отчет об автоматической настройке в Spring Boot

· 3 мин. чтения

Задача: Медиана двух отсортированных массивов

Даны два отсортированных массива размерами n и m. Найдите медиану слияния этих двух массивов.
Временная сложность решения должна быть O(log(m + n)) ...

ANDROMEDA

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 нашел в пути к классам и настроил автоматически. Он также показывает информацию о классах, которые известны 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 .