SpringBoot【条件注解@Conditional】

1、Condition

  是在spring4.0 增加的条件注解,通过这个可以功能可以实现选择性的注入Bean操作。

  注意:以下三个代码块分属不同的文件,便于说明具体问题

@Bean("contectService")
@Conditional(LoadConditional.class)
// 条件控制,如果对应的match操作返回true,则会注入该bean
// 否则会跳过处理该bean
public ContextService contextService() {
    return new ContextService();
}

public class LoadConditional implements Condition {

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        // 查看在Bootstrap的ENV的值是否等于test
        // 后面会介绍这个context上下文,其中包含了整个的bean工厂内容
        return Bootstrap.ENV.equals("test");
    }
}

@SpringBootApplication
@ComponentScan("com.demo.boot")
@EnableSwagger2
public class Bootstrap {

    public static String ENV = "test";

    public static void main(String[] args) {
        SpringApplication.run(Bootstrap.class);
    }

}

2、条件注解小结

  这些注解都组合了@Conditional元注解,只是使用不同的条件。

posted on 2019-06-24 09:39  小毛线  阅读(152)  评论(0)    收藏  举报

导航