- ConditionalOnClass :用于指定在Classpath下拥有某些Class时才生效
- ConditionalOnMissingClass :用于指定在Classpath下不存在某些Class时才生效
- ConditionalOnBean :用于指定在bean容器中存在某些bean时生效
- ConditionalOnMissingBean :用于指定在bean容器中不存在某些bean时生效
- ConditionalOnWebApplication :用于指定当应用是Web应用时生效
- ConditionalOnNotWebApplication :用于指定当应用是非Web应用时生效
- ConditionalOnProperty :用于指定当配置了某些特定的参数时生效
@ConditionalOnProperty(prefix = "spring.http.encoding", value = "enabled", matchIfMissing = true) //判断配置文件中是否存在某个配置 spring.http.encoding.enabled;如果不存在,判断也是成立的//即使我们配置文件中不配置pring.http.encoding.enabled=true,也是默认生效的;
- ConditionalOnExpression :用于根据SpEl表达式控制是否生效
- ConditionalOnSingleCandidate :用于指定当bean容器中只存在唯一的指定类型的bean时才生效;当bean容器中存在多个指定类型的bean,但是使用
@Primary
指定了主候选者也是可以匹配的,即也是生效的