com.rnkrsoft.config:config

Rnkrsoft Config Library


License
Intel

Documentation

配置文件库

Maven central

<dependency>
    <groupId>com.rnkrsoft.config</groupId>
    <artifactId>config</artifactId>
    <version>最新版本号</version>
</dependency>

配置文件提供者

package com.rnkrsoft.config;


/**
 * Created by rnkrsoft.com on 2019/1/6.
 * 配置提供者
 */
public interface ConfigProvider {
    /**
     * 初始化配置提供者
     * @param configDir 配置文件目录
     * @param reloadInterval 重新加载时间间隔
     */
    void init(String configDir, int reloadInterval);

    /**
     * 初始化配置提供者
     * @param reloadInterval 重新加载时间间隔
     */
    void init(int reloadInterval);

    /**
     * 重新加载
     */
    void reload();

    /**
     * 保存配置
     */
    void save();

    /**
     * 设置参数值
     * @param name 参数名
     * @param value 参数值
     */
    void param(String name, String value);

    /**
     * 获取参数
     * @param name 参数名
     * @param paramClass 参数值类型
     * @param <T> 参数值类型
     * @return 参数值
     */
    <T> T getParam(String name, Class<T> paramClass);

    /**
     * 获取指定参数名的数组值
     * @param name 参数名
     * @return 参数值
     */
    String[] getArray(String name);

    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @return 参数值
     */
    String getString(String name);
    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @param defaultValue 如果为null时返回默认值
     * @return 参数值
     */
    String getString(String name, String defaultValue);

    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @return 参数值
     */
    Integer getInteger(String name);
    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @param defaultValue 如果为null时返回默认值
     * @return 参数值
     */
    Integer getInteger(String name, Integer defaultValue);

    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @return 参数值
     */
    Long getLong(String name);
    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @param defaultValue 如果为null时返回默认值
     * @return 参数值
     */
    Long getLong(String name, Long defaultValue);

    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @return 参数值
     */
    Double getDouble(String name);
    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @param defaultValue 如果为null时返回默认值
     * @return 参数值
     */
    Double getDouble(String name, Double defaultValue);

    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @return 参数值
     */
    Boolean getBoolean(String name);
    /**
     * 获取指定参数名的字符串值
     * @param name 参数名
     * @param defaultValue 如果为null时返回默认值
     * @return 参数值
     */
    Boolean getBoolean(String name, Boolean defaultValue);
}

通过工厂类构建实现

//构建配置提供者test.properties
final ConfigProvider configProvider = ConfigProviderFactory.getPropertiesInstance("test");
configProvider.param("MONITOR_APPLICATIONID", "default");
configProvider.param("MONITOR_ENVIRONMENTID", "1");
//每隔2秒钟热加载一次
configProvider.init("src/test/resources", 2);
Thread t = new Thread(){
    @Override
    public void run() {
        while (true){
            Long value = configProvider.getLong("MONITOR_ENVIRONMENTID", 0L);
            System.out.println(value);
            try {
                Thread.sleep(1 * 1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
};
t.start();
Thread.sleep(60 * 1000);