@Conditional(实现了Condition接口的类) 满足某个自定义条件时才创建有该注解的Bean
@ConditionalOnBean 配置了某个特定Bean
@ConditionalOnMissingBean 没有配置特定的Bean
例如:
@Bean
@ConditionalOnMissingBean(Bean_B.class)
public Bean_A getBeanA(){
return new Bean_A();
}
如果没有BeanB类型的Bean时才会执行此方法,否则不会返回Bean_A
@ConditionalOnMissingClass Classpath 里缺少指定的类
@ConditionalOnExpression 给定的 Spring Expression Language ( SpEL )表达式计算结果为 true
@ConditionalOnJava Java 的版本匹配特定值或者一个范围值
@ConditionalOnJndi 参数中给定的 JNDI 位置必须存在一个,如果没有给参数,则要有 JNInitialContext
@ConditionalOnProperty 指定的配置属性要有一个明确的值
@ConditionalOnResource Classpath 里有指定的资源
@ConditionalOnWebApplication 这是一个 Web 应用程序
@ConditionalOnNotWebApplication 这不是一个 Web 应用程序