@Configuration
@ConditionalOnMissingBean(Config01.class)
public class Config01 {
public Config01(){
System.out.println("Config01 has been created");
}
}
@ConditionalOnMissingBean
本身是当容器中不存在某个Bean时会去执行下面的类,但是在上面代码中,结果出现了相反的状况,一开始我认为,Config01一开始肯定不在容器里,所以Config会被加载到容器中,但是结果恰恰相反,Config01并没有被创建,但是当我将@ConditionalOnMissingBean
改成@ConditionalOnBean时
,结果恰恰相反,这个类被创建了。有没有大神替我解答一下疑惑。虽然一般人不会这么干。但是还是希望明白设什么原因造成这个情况