Conditional作用
- 必须是@Conditional指定的条件成立,才给容器中添加组件,配置类里面的所有内容才生效
- 自动配置类必须在一定的条件下才生效
- 可以通过启用debug=true属性;来让控制台打印自动配置报告,则可知晓哪些自动配置类生效
Positive matches:已启用的自动配置
Negative matches:未匹配上的自动配置
Conditional扩展
@ConditionalOnJava 系统的java版本是否符合要求
@ConditionalOnBean 容器中存在指定Bean
@ConditionalOnMissingBean 容器中不存在指定Bean
@ConditionalOnExpression 满足SpEL表达式指定
@ConditionalOnClass 系统中有指定的类
@ConditionalOnMissingClass 系统中没有指定的类
@ConditonalOnSingleCandidate 容器中只有一个指定的Bean,或者这个Bean是首选Bean
@ConditionalOnProperty 系统中指定的属性是否有指定的值
@ConditionalOnResource 类路径下是否存在指定资源文件
@ConditionalOnWebApplication 当前是Web环境
@ConditionalOnNotWebApplication 当前不是Web环境
@ConditionalOnJndi JNDI存在指定项