Afficher le rapport de configuration automatique au démarrage du printemps

Afficher le rapport de configuration automatique au démarrage du printemps

1. Vue d'ensemble

Le mécanisme de configuration automatique dans Spring Boot tente de configurer automatiquement une application en fonction de ses dépendances.

Dans ce tutoriel rapide,we’ll see how Spring Boot can log its auto-configuration report at startup time.

2. Exemple d'application

Écrivons une application Spring Boot simple que nous utiliserons dans nos exemples:

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

3. Approche des propriétés d'application

En démarrant cette application, nous n’obtenons pas beaucoup d’informations sur la manière ou la raison pour laquelle Spring Boot a décidé de composer la configuration de notre application.

Mais,we can have Spring Boot create a report simply by enabling debug mode dans notre fichierapplication.properties:

debug=true

Ou notre fichierapplication.yml:

debug: true

4. Approche en ligne de commande

Ou, si nous ne voulons pas utiliser l'approche du fichier de propriétés, nous pouvons déclencher le rapport de configuration automatique parstarting the application with the –debug switch:

$ java -jar myproject-0.0.1-SNAPSHOT.jar --debug

5. Sortie du rapport

Le rapport de configuration automatique contient des informations sur les classes que Spring Boot a trouvées sur le chemin d'accès aux classes et configurées automatiquement. Il affiche également des informations sur les classes connues de Spring Boot mais introuvables sur le classpath.

Et, comme nous avons définidebug=true, nous le voyons dans notre sortie:

============================
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. Conclusion

Dans ce rapide tutoriel, nous avons vu comment afficher et lire un rapport de configuration automatique Spring Boot.

Et comme toujours, le code source de l'exemple ci-dessus peut être trouvéover on GitHub.