@ConditionalOnMissingBean 注解作用详解
@ConditionalOnMissingBean 此注解是修饰Bean的一个注解,为了保证你注入的某个Bean是唯一的,当在另一个地方注入一个相同的Bean的时候,系统会抛出异常以提示人员。
@Component
public class AutoConfig {
@Bean
public AConfig aConfig() {
return new AConfig("lind");
}
@Bean
@ConditionalOnMissingBean(AMapper.class)
public AMapper aMapper1(AConfig aConfig) {
return new AMapperImpl1(aConfig);
}
@Bean
public AMapper aMapper2(AConfig aConfig) {
return new AMapperImpl2(aConfig);
}
}
在上述代码中,aMapper1方法上添加了@ConditionalOnMissingBean注解, 表明AMapper对象只能注入一次,但是 aMapper2方法又注入了一次AMapper ,这种情况下,系统会抛出异常,加此注解时为了防止多个相同类型的Bean同时注入的风险。
在正常情况下,即没有加@ConditionalOnMissingBean 注解的情况下,是允许多个相同的Bean注入的