天天看点

@Conditional自动配置报告

一:@Condtional派生注解(可以看Spring注解版原生的@Conditional作用)

作用:必须是@Conditional指定的条件成立,才给容器添加组件,配置里面配置的内容才会生效。

Conditional扩展注解 作用(判断是否满足当前指定条件)
ConditionalOnJava 系统的java版本是否符合要求
ConditionalOnBean 容器中存在指定Bean
ConditionalOnMissingBean 容器中不存在指定Bean
ConditionalOnExpression 满足SpEl表达式指定
ConditionalOnClass 系统中存在指定的类
ConditionalOnMissingClass 系统中没有指定的类
ConditionalOnSingleCandidate 容器中只有一个指定的Bean,或者这个Bean是首选的Bean
ConditionalOnProperty 系统中指定的属性是否有指定的值
ConditionalOnResource 类路径下是否存在指定的资源文件
ConditionalOnWebApplication 当前是web环境
ConditionalOnNotWebApplication 当前不是web环境
ConditionalOnJndi JNDI存在指定项
自动配置类必须在一定条件下才能生效

二:我们怎么知道那些自动配置类生效

我们可以通过使用debug=true属性,来让控制台自动打印自动配置报告,这样我们就很方便的知道那些自动配置类生效

============================
CONDITIONS EVALUATION REPORT
============================


Positive matches:(自动配置类启用的)
-----------------

   AopAutoConfiguration matched:
      - @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition)

   AopAutoConfiguration.ClassProxyingConfiguration matched:
      - @ConditionalOnMissingClass did not find unwanted class 'org.aspectj.weaver.Advice' (OnClassCondition)
      - @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition)

egative matches:(没有启动,匹配成功的自动配置类)
-----------------

   ActiveMQAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition)
           

继续阅读