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);
            }
        }
    }
  • 相关阅读:
    MaxScript 计算执行时间差
    MaxScript 几种类GUID的生成方法
    MaxScript 防坑规范指南
    样式测试
    设置.MAX文件程序关联
    Python相关网站(持续更新)
    Python程序使用cx_freeze打包(报错)
    Python对Excel的操作(模块win32com)
    Python对Excel的操作(模块xlrd)
    python模块安装
  • 原文地址:https://www.cnblogs.com/draymond/p/12546345.html
Copyright © 2011-2022 走看看