Spring Boot 核心注解:@Conditional

 2022-08-13
原文地址:https://cloud.tencent.com/developer/article/1673997

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
         */
        @Nullable
        ConfigurableListableBeanFactory getBeanFactory();
    
        /**
         * environment 持有所有的配置信息
         */
        Environment getEnvironment();
    
        /**
         * 资源信息
         */
        ResourceLoader getResourceLoader();
    
        /**
         * 类加载信息
         */
        @Nullable
        ClassLoader getClassLoader();
    }