• Properties文件载入工具类


    public class PropertiesLoader {

    private static Logger logger = LoggerFactory.getLogger(PropertiesLoader.class);

    private static ResourceLoader resourceLoader = new DefaultResourceLoader();

    private final Properties properties;

    public PropertiesLoader(String... resourcesPaths) {
    properties = loadProperties(resourcesPaths);
    }

    public Properties getProperties() {
    return properties;
    }

    /**
    * 取出Property,但以SystemProperty优先,取不到返回空字符串.
    */
    private String getValue(String key) {
    String systemProperty = System.getProperty(key);
    if (systemProperty != null) {
    return systemProperty;
    }
    if (properties.containsKey(key)) {
    return properties.getProperty(key);
    }
    return "";
    }

    /**
    * 取出String类型的Property,但以SystemProperty优先,如果都为Null则抛出异常.
    */
    public String getProperty(String key) {
    String value = getValue(key);
    if (value == null) {
    throw new NoSuchElementException();
    }
    return value;
    }

    /**
    * 取出String类型的Property,但以SystemProperty优先.如果都为Null则返回Default.
    */
    public String getProperty(String key, String defaultValue) {
    String value = getValue(key);
    return value != null ? value : defaultValue;
    }

    /**
    * 取出Integer类型的Property,但以SystemProperty优先.如果都为Null或内容错误则抛出异常.
    */
    public Integer getInteger(String key) {
    String value = getValue(key);
    if (value == null) {
    throw new NoSuchElementException();
    }
    return Integer.valueOf(value);
    }

    /**
    * 取出Integer类型的Property,但以SystemProperty优先.如果都为Null则返回Default值,如果内容错误则抛出异常
    */
    public Integer getInteger(String key, Integer defaultValue) {
    String value = getValue(key);
    return value != null ? Integer.valueOf(value) : defaultValue;
    }

    /**
    * 取出Double类型的Property,但以SystemProperty优先.如果都为Null或内容错误则抛出异常.
    */
    public Double getDouble(String key) {
    String value = getValue(key);
    if (value == null) {
    throw new NoSuchElementException();
    }
    return Double.valueOf(value);
    }

    /**
    * 取出Double类型的Property,但以SystemProperty优先.如果都为Null则返回Default值,如果内容错误则抛出异常
    */
    public Double getDouble(String key, Integer defaultValue) {
    String value = getValue(key);
    return value != null ? Double.valueOf(value) : defaultValue;
    }

    /**
    * 取出Boolean类型的Property,但以SystemProperty优先.如果都为Null抛出异常,如果内容不是true/false则返回false.
    */
    public Boolean getBoolean(String key) {
    String value = getValue(key);
    if (value == null) {
    throw new NoSuchElementException();
    }
    return Boolean.valueOf(value);
    }

    /**
    * 取出Boolean类型的Property,但以SystemProperty优先.如果都为Null则返回Default,如果内容不为true/false则返回false.
    */
    public Boolean getBoolean(String key, boolean defaultValue) {
    String value = getValue(key);
    return value != null ? Boolean.valueOf(value) : defaultValue;
    }

    /**
    * 载入多个文件, 文件路径使用Spring Resource格式.
    */
    private Properties loadProperties(String... resourcesPaths) {
    Properties props = new Properties();

    for (String location : resourcesPaths) {

    // logger.debug("Loading properties file from:" + location);

    InputStream is = null;
    try {
    Resource resource = resourceLoader.getResource(location);
    is = resource.getInputStream();
    props.load(is);
    } catch (IOException ex) {
    logger.info("Could not load properties from path:" + location + ", " + ex.getMessage());
    } finally {
    IOUtils.closeQuietly(is);
    }
    }
    return props;
    }
    }
  • 相关阅读:
    语言:障碍与桥梁(探索语言的本质、如何避免语言上的误解)
    知觉:看到什么就是什么(怎么避免误解别人的行为)
    沟通和认同:自我的塑造与展现(如何认识自我,如何袒露自我,如何回应尴尬问题)
    人际沟通入门(认清沟通高手的特质)
    人际沟通与社交媒体(媒介沟通的优缺点)
    javascript中的this值
    Javascript 模块化编程 --RequireJs
    datetime与int 转换通用函数
    c# 读写cookie 通用函数
    分类组件
  • 原文地址:https://www.cnblogs.com/luyuefei/p/13386600.html
Copyright © 2020-2023  润新知