Spring Boot @Conditional注解

@Conditional是Spring4新提供的注解,它的作用是按照一定的條件進行判斷,滿足條件的才給容器注冊Bean。

@Conditional注解定義
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Conditional {Class<? extends Condition>[] value();
}
Condition
@FunctionalInterface
public interface Condition {boolean matches(ConditionContext var1, AnnotatedTypeMetadata var2);
}
ConditionContext
public interface ConditionContext {/*** 獲取Bean*/BeanDefinitionRegistry getRegistry();/*** 獲取Bean工程,因此就可以獲取容器中的所有bean*/@NullableConfigurableListableBeanFactory getBeanFactory();/*** environment 持有所有的配置信息*/Environment getEnvironment();/*** 資源信息*/ResourceLoader getResourceLoader();/*** 類加載信息*/@NullableClassLoader getClassLoader();
}