- org.springframework.boot.autoconfigure.condition.ConditionalOnBean:只有当满足所有声明的要求的bean已经包含在BeanFactory中的时候,@Conditional才匹配。条件要想匹配上,所有的要求必须被满足,但不必须是被一个bean满足。
- 当注解一个@Bean方法的时候,bean类默认是工厂方法返回的类型。
例如:
@Configuration
public class MyAutoConfiguration {
@ConditionalOnBean
@Bean
public MyService myService() {
...
}
}
在上面的例子中,只有当一个类型为MyService的bean已经包含在BeanFactory的时候,条件才满足。
- 条件只能匹配目前为止已经被应用上下文处理的bean定义。正因为此,强烈建议只将这个注解用在自动配置类上。如果一个候选bean可以被其它的自动配置创建,那么要确保使用这个条件的bean在后面运行。