@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。
public @interface Conditional {
Class<? extends Condition>[] value();
}
@Conditional需要传入一个Class数组,并且需要继承Condition接口:
public interface Condition {
boolean matches(ConditionContext var1, AnnotatedTypeMetadata var2);
}
自定义条件需要实现matches方法,返回true则注入bean,false则不注入。
Spring boot基于@Conditional的派生注解有: