@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;
}
該註解也可以放在整個配置類的前面,這種情況下決定是否加載當前配置類
另外,可以看出該註解接受的是反射類型的數組,也就是可以接受多個判斷條件來確定是否加載當前配置