zoukankan      html  css  js  c++  java
  • 根据系统类型选择注入bean(windows,linux注入不同的属性)

    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);
            }
        }
    }
  • 相关阅读:
    WPF 绘图 和动画
    BZOJ 4028 分块
    操作系统与计算机网络
    go排序-基数排序
    go排序-睡眠排序
    go排序-堆排序
    go排序-构建大顶堆
    go排序 插入排序
    go排序-选择排序
    go排序-冒泡排序
  • 原文地址:https://www.cnblogs.com/draymond/p/12546345.html
Copyright © 2011-2022 走看看