注释类型 ConditionalOnBean
@Target({TYPE,METHOD}) @Retention(RUNTIME) @Documented @Conditional(org.springframework.boot.autoconfigure.condition.OnBeanCondition.class) public @interface ConditionalOnBean
Conditionalthat only matches when the specified bean classes and/or names are already contained in theBeanFactory. When placed on a@Beanmethod, the bean class defaults to the return type of the factory method:@Configuration public class MyAutoConfiguration { @ConditionalOnBean @Bean public MyService myService() { ... } }In the sample above the condition will match if a bean of type
MyServiceis already contained in theBeanFactory.The condition can only match the bean definitions that have been processed by the application context so far and, as such, it is strongly recommended to use this condition on auto-configuration classes only. If a candidate bean may be created by another auto-configuration, make sure that the one using this condition runs after.
可选元素概要
可选元素 修饰符和类型 可选元素 说明 Class<? extends Annotation>[]annotationThe annotation type decorating a bean that should be checked.String[]nameThe names of beans to check.SearchStrategysearchStrategy to decide if the application context hierarchy (parent contexts) should be considered.String[]typeThe class type names of bean that should be checked.Class<?>[]valueThe class type of bean that should be checked.
annotation
Class<? extends Annotation>[] annotation
The annotation type decorating a bean that should be checked. The condition matches when any of the annotations specified is defined on a bean in theApplicationContext.- 返回:
- the class-level annotation types to check
- 默认值:
- {}
search
SearchStrategy search
Strategy to decide if the application context hierarchy (parent contexts) should be considered.- 返回:
- the search strategy
- 默认值:
- org.springframework.boot.autoconfigure.condition.SearchStrategy.ALL