Exibir relatório de configuração automática na inicialização do Spring
1. Visão geral
O mecanismo de configuração automática no Spring Boot tenta configurar automaticamente um aplicativo com base em suas dependências.
Neste tutorial rápido,we’ll see how Spring Boot can log its auto-configuration report at startup time.
2. Aplicação de amostra
Vamos escrever um aplicativo Spring Boot simples que usaremos em nossos exemplos:
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
3. Abordagem de propriedades do aplicativo
Ao iniciar este aplicativo, não recebemos muitas informações sobre como ou por que Spring Boot decidiu compor a configuração de nosso aplicativo.
Mas,we can have Spring Boot create a report simply by enabling debug mode em nosso arquivoapplication.properties:
debug=true
Ou nosso arquivoapplication.yml:
debug: true
4. Abordagem de linha de comando
Ou, se não quisermos usar a abordagem de arquivo de propriedades, podemos acionar o relatório de configuração automática porstarting the application with the –debug switch:
$ java -jar myproject-0.0.1-SNAPSHOT.jar --debug
5. Saída de relatório
O relatório de configuração automática contém informações sobre as classes que o Spring Boot encontrou no caminho de classe e configurou automaticamente. Ele também mostra informações sobre as classes conhecidas pelo Spring Boot, mas não foram encontradas no caminho de classe.
E, como definimosdebug=true, vemos isso em nossa saída:
============================
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. Conclusão
Neste tutorial rápido, vimos como exibir e ler um relatório de configuração automática do Spring Boot.
E como sempre, o código-fonte para o exemplo acima pode ser encontradoover on GitHub.