Spring Bootで自動設定レポートを表示する
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がアプリケーションの構成を作成する方法を決定した理由やその理由については、多くの情報が得られません。
しかし、
application.properties
ファイルでデバッグモードを有効にすることで** Spring Bootにレポートを作成させることができます。
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の自動設定レポートを表示して読む方法を見ました。
そしていつものように、上の例のソースコードはhttps://github.com/eugenp/tutorials/tree/master/spring-boot/src/main/java/com/baeldung/intro[GitHubに載っています]。