首页 > Windows开发 > 详细

根据系统类型选择注入bean(windows,linux注入不同的属性)

时间:2020-03-22 16:45:19      阅读:64      评论:0      收藏:0      [点我收藏+]

1:需要注入的bean

/**
 * 选择性注入bean。。根据window,linux系统注入不同的值
 */
@Configuration
public class Cap5Config {

    /*
        linux系统注入的属性
     */
    @Bean("linuxUser")
    @Conditional(LinuxCondition.class)
    public User linuxUser() {
        return new User("linuxUser", 26);
    }

    /*
        Window系统注入的属性
     */
    @Bean("windowUser")
    @Conditional(value = WindowCondition.class)     //选择性注入(需要配合@Bean注解)
    public User windowUser() {
        return new User("windowUser", 26);
    }

2:设置注册条件

/**
 * 针对性注册bean:判断条件使用的上下文环境
 */
public class WindowCondition implements Condition {

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {

        Environment environment = context.getEnvironment();
        String window = environment.getProperty("os.name");
        if (window.contains("Win")) return true;
        return false;

    }
}

3:标记条件

@Conditional(value = WindowCondition.class)

4:测试

public class ConditionApplication {
    public static void main(String[] args) {

        AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(Cap5Config.class);

        String[] beanDefinitionNames = annotationConfigApplicationContext.getBeanDefinitionNames();
        for (String beanName : beanDefinitionNames) {  //获取注入的所有的bean并打印
            System.out.println(beanName);
        }
    }
}

 

根据系统类型选择注入bean(windows,linux注入不同的属性)

原文:https://www.cnblogs.com/draymond/p/12546345.html

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