首页 > 编程语言 > 详细

四、【注解】Spring注解@Conditional

时间:2020-09-23 09:23:42      阅读:69      评论:0      收藏:0      [点我收藏+]

采用注解的方式来注入bean

  1. 编写config类
/**
 * @author zhangjianbing
 * time 2020/09/23
 * https://www.zhangjianbing.com
 */
@Configuration
public class ConditionConfig {

    @Conditional(ConditionMatch1.class)
    @Bean
    public Goods m1() {
        System.out.println("将zhang放入IOC中。。。。");
        return new Goods("zhang", 24);
    }

    @Conditional(ConditionMatch2.class)
    @Bean
    public Goods m2() {
        System.out.println("将jian放入IOC中。。。。");
        return new Goods("jian", 25);
    }

    @Bean
    public Goods m3() {
        System.out.println("将bing放入IOC中。。。。");
        return new Goods("bing", 26);
    }

}
  1. 编写condition类
/**
 * @author zhangjianbing
 * time 2020/09/23
 * https://www.zhangjianbing.com
 */
public class ConditionMatch1 implements Condition {

    // conditionContext:判断条件可以使用的上下文环境
    // annotatedTypeMetadata:注解的信息
    @Override
    public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
        Environment environment = conditionContext.getEnvironment();
        String property = environment.getProperty("os.name");
        if (property.contains("Mac")) {
            System.out.println("=====================");
            return true;
        }
        return false;
    }
}

可见它实现了condition接口,目的就是在bean注入容器之前进行判断,符合条件的才注入容器。

  1. 编写测试类
/**
 * @author zhangjianbing
 * time 2020/09/23
 * https://www.zhangjianbing.com
 */
public class Test01 {

    public static void main(String[] args) {

        // IOC容器创建(容器类似一个Map)
        AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ConditionConfig.class);

        System.out.println("IOC容器初始化完成。。。。。");

    }

}
  1. 测试结果:
=====================
将zhang放入IOC中。。。。
将bing放入IOC中。。。。
IOC容器初始化完成。。。。。

四、【注解】Spring注解@Conditional

原文:https://www.cnblogs.com/zhangjianbing/p/13716163.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!