1.简介
- @Conditional属于springboot中的条件注解,它可以按照一定的条件判断,在满足条件的情况下给容器注册bean
在idea中搜索会发现有很多条件注解
- 下面给出常用的条件注解作用解释 常用的是 @ConditionOnBean以及@ConditionMissingBean
2.演示
- 条件:只有容器中有某个bean时才进行该bean的注入 使用注解:@ConditionalOnBean
/**
- 1. @ConditionalOnBean(name = "dog02") 表示
- 2. 当容器中有一个Bean , 名字是dog02 (类型不做约束), 就注入dog01这个Dog bean
- 3. 如果没有 名字是monster_nmw Bean 就不注入dog01这个Dog bean,在获取时会报错
*/
@ConditionalOnBean(name = "dog02")
@Bean
public Dog dog01(){
return new Dog();
}
- 只有spring容器中不存在某个bean 才进行该bean的注入 使用注解:@ConditionalOnMissingBean
/**
* @ConditionalOnMissingBean(name = "dog03") 表示在容器中,
* 没有 名字/id 为 dog03 这样的bean 才注入dog01这个Bean
*/
@ConditionalOnMissingBean(name = "dog03")
@Bean
public Dog dog01(){
return new Dog();
}
总结
条件注解是有条件的注入某个bean,在没有这类注解时,我们的spring容器会注入所有的bean.