Annotation Interface ConditionalOnBean
@Target({TYPE,METHOD})
@Retention(RUNTIME)
@Documented
@Conditional(org.springframework.boot.autoconfigure.condition.OnBeanCondition.class)
public @interface ConditionalOnBean
@Conditional that only matches when beans meeting all the specified
 requirements are already contained in the BeanFactory. All the requirements
 must be met for the condition to match, but they do not have to be met by the same
 bean.
 
 When placed on a @Bean method and none of value(), type(),
 name(), or annotation() has been specified, the bean type to match
 defaults to the return type of the @Bean method:
 
 @Configuration
 public class MyAutoConfiguration {
     @ConditionalOnBean
     @Bean
     public MyService myService() {
         ...
     }
 }
 
 In the sample above the condition will match if a bean of type MyService is
 already contained in the BeanFactory.
 
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.
- Since:
- 1.0.0
- Author:
- Phillip Webb
- 
Optional Element SummaryOptional ElementsModifier and TypeOptional ElementDescriptionClass<? extends Annotation>[]The annotation type decorating a bean that should be checked.String[]The names of beans to check.Class<?>[]Additional classes that may contain the specified bean types within their generic parameters.Strategy to decide if the application context hierarchy (parent contexts) should be considered.String[]The class type names of beans that should be checked.Class<?>[]The class types of beans that should be checked.
- 
Element Details- 
valueClass<?>[] valueThe class types of beans that should be checked. The condition matches when beans of all classes specified are contained in theBeanFactory. Beans that are not autowire candidates or that are not default candidates are ignored.- Returns:
- the class types of beans to check
- See Also:
 - Default:
- {}
 
- 
typeString[] typeThe class type names of beans that should be checked. The condition matches when beans of all classes specified are contained in theBeanFactory. Beans that are not autowire candidates or that are not default candidates are ignored.- Returns:
- the class type names of beans to check
- See Also:
 - Default:
- {}
 
- 
annotationClass<? extends Annotation>[] annotationThe annotation type decorating a bean that should be checked. The condition matches when all the annotations specified are defined on beans in theBeanFactory. Beans that are not autowire candidates or that are not default candidates are ignored.- Returns:
- the class-level annotation types to check
- See Also:
 - Default:
- {}
 
- 
nameString[] nameThe names of beans to check. The condition matches when all the bean names specified are contained in theBeanFactory.- Returns:
- the names of beans to check
 - Default:
- {}
 
- 
searchSearchStrategy searchStrategy to decide if the application context hierarchy (parent contexts) should be considered.- Returns:
- the search strategy
 - Default:
- ALL
 
- 
parameterizedContainerClass<?>[] parameterizedContainerAdditional classes that may contain the specified bean types within their generic parameters. For example, an annotation declaringvalue=Name.classandparameterizedContainer=NameRegistration.classwould detect bothNameandNameRegistration<Name>.- Returns:
- the container types
- Since:
- 2.1.0
 - Default:
- {}
 
 
-