zoukankan      html  css  js  c++  java
  • 通过get方法的方式获取配置项信息

    这种写法比其他的方法好的一点是,当你需要修改参数名或者参数值的时候,只需要改一个地方就可以了,其他地方根本不用动,面向接口编程。

    eureka-server.properties 


    archaius.dynamicPropertyFactory.Default_getInstanceId=inistanceid
    archaius.dynamicPropertyFactory.DEFAULT_GETAPPNAME=getname
    archaius.dynamicPropertyFactory.DEFAULT_APPGROUPNAME


    package com.liwei.leshop.eureka.config;

    /**
    * 常量类
    */
    public class Content {
    public static final String URL_CONFIG_NAME = "archaius.dynamicPropertyFactory.URL_CONFIG";
    public static final String DEFAULT_GETINSTANCEID = "archaius.dynamicPropertyFactory.Default_getInstanceId";
    public static final String DEFAULT_GETAPPNAME = "archaius.dynamicPropertyFactory.DEFAULT_GETAPPNAME";
    public static final String SYS_CONFIG_NAME = "archaius.dynamicPropertyFactory.SYS_CONFIG";
    public static final String ENV_CONFIG_NAME = "archaius.dynamicPropertyFactory.ENV_CONFIG";
    public static final String DEFAULT_APPGROUPNAME = "archaius.dynamicPropertyFactory.DEFAULT_APPGROUPNAME";
    }


    /**
    * server编码
    */
    public interface EurekaServiceConfig {

    String getInstanceId();


    String getAppname();

    String getAppGroupName();

    }

    package com.liwei.leshop.eureka.config;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Optional;
    import java.util.Properties;
    
    public class PropertiesInstanceConfig implements EurekaServiceConfig {
        public static void main(String[] args) {
            PropertiesInstanceConfig config = PropertiesInstanceConfig.getPropertiesInstanceConfig();
            System.out.println( config.getAppGroupName());
        }
        public static Properties properties = new Properties();
    
        static volatile PropertiesInstanceConfig instance = null;
    
        public static PropertiesInstanceConfig getPropertiesInstanceConfig() {
            if (instance == null) {
                synchronized (PropertiesInstanceConfig.class) {
                    if (instance == null) {
                        instance = new PropertiesInstanceConfig();
                    }
                }
            }
            return instance;
        }
    
        private PropertiesInstanceConfig() {
            InputStream in = PropertiesInstanceConfig.class.getClassLoader().getResourceAsStream("eureka-server.properties");
            try {
                properties.load(in);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    
        @Override
        public String getInstanceId() {
            return String.valueOf(Optional.ofNullable(properties.get(Content.DEFAULT_GETINSTANCEID)).orElse("Default_getInstanceId"));
        }
    
        @Override
        public String getAppname() {
            return String.valueOf(Optional.ofNullable( properties.get(Content.DEFAULT_GETAPPNAME)).orElse("Default_getAppname"));
    
        }
    
        @Override
        public String getAppGroupName() {
            return String.valueOf(Optional.ofNullable(properties.get(Content.DEFAULT_GETAPPNAME)).orElse("deflut"));
        }
    }





  • 相关阅读:
    CSDNReader(android客户端)发布!!
    linux下的C语言快速学习—从1+1开始。
    linux下的C语言快速学习—进程和文件
    ListView动态加载数据分页(使用Handler+线程和AsyncTask两种方法)
    CSDN阅读器(android版)开发总结
    算法实现将一个输入的数字颠倒(输入12345>54321)
    linux下的C语言快速学习—计算机体系结构基础简单了解
    实现一个字符串查找子串的函数
    .net4.0面向对象学习笔记—数据类型
    装饰器模式
  • 原文地址:https://www.cnblogs.com/q1359720840/p/14815105.html
Copyright © 2011-2022 走看看