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);
            }
        }
    }
  • 相关阅读:
    Linux系统管理05-----权限及归属管理
    Linux系统安装管理04----账号管理
    Linux系统管理03-----安装与管理程序
    Zabbix 监控主机
    Zabbix 页面优化
    基于 MHA 的MySQL高可用-CentOS7(理论)
    基于 MHA 的MySQL高可用-CentOS7(实例)
    部署Jumpserver环境
    GNS3连接本地服务器报错
    zabbix 安装部署
  • 原文地址:https://www.cnblogs.com/draymond/p/12546345.html
Copyright © 2011-2022 走看看