@Target(value={TYPE,METHOD}) @Retention(value=RUNTIME) @Documented @Conditional(value=org.springframework.boot.autoconfigure.condition.OnBeanCondition.class) public @interface ConditionalOnBean
Conditional
that only matches when the specified bean classes and/or names are
already contained in the BeanFactory
. When placed on a @Bean
method,
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 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.
Modifier and Type | Optional Element and Description |
---|---|
Class<? extends Annotation>[] |
annotation
The annotation type decorating a bean that should be checked.
|
String[] |
name
The names of beans to check.
|
SearchStrategy |
search
Strategy to decide if the application context hierarchy (parent contexts) should be
considered.
|
String[] |
type
The class type names of bean that should be checked.
|
Class<?>[] |
value
The class type of bean that should be checked.
|
public abstract Class<?>[] value
ApplicationContext
.public abstract String[] type
ApplicationContext
.public abstract Class<? extends Annotation>[] annotation
ApplicationContext
.public abstract String[] name
ApplicationContext
.public abstract SearchStrategy search
Copyright © 2019 Pivotal Software, Inc.. All rights reserved.