@Configuration
@Import(MyImportSelector.class)
public class ApplicationConfig {
@Conditional(TestCondition.class)
@Bean
public MyBeanFactory myBeanFactory(){
return new MyBeanFactory();
}
}
该注解必须接收一个继承了Condition接口的实现类,而接口Condition中的方法matches()的返回值确定是否加载当前的Bean(matches()方法中实现判断逻辑),返回值为true,则加载下面的bean;
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return true;
}
该注解也可以放在整个配置类的前面,这种情况下决定是否加载当前配置类
另外,可以看出该注解接受的是反射类型的数组,也就是可以接受多个判断条件来确定是否加载当前配置