@Conditional
根据Condition接口中的 matches 方法进行判断 ,如果 matches 为true 则注册Bean , 为false 则不注册Bean
/**
* 实现 Condition 接口
*/
class ConditionTest implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata){
// 业务逻辑 ,不同的逻辑做不同的判断,根据逻辑判断是否需要注册bean
return false ;
}
}
//使用 Conditional 注解
@Conditional(ConditionTest.class)
class Test1 {
public Test1() {
System.out.println( "AbcTest");
}
}
public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(Test1.class);
}
结果:不会输出 AbcTest , 不过matches 方法改成true 就会输出