• 通过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"));
        }
    }





  • 相关阅读:
    UID卡、CUID卡、FUID卡的区别
    高中数学B版 高中数学A版
    Cenots7 服务搭建之搞清用户和组
    Flink 流处理 word count
    Flink Batch File Word Count
    Flink程序运行完yarn 模式后,返回运行standalone模式运行时。经常会出现运行不成功原因分析.
    Kafka消费者 API(自动提交offset)
    kafka 同步发送消息
    kafka 自定义分区
    kafka生产者 API Demo
  • 原文地址:https://www.cnblogs.com/q1359720840/p/14815105.html
Copyright © 2020-2023  润新知