zoukankan      html  css  js  c++  java
  • 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;
    }
    }
  • 相关阅读:
    EF框架下的双表查询
    MVC中控制器向视图传值的四种方式
    html中常用的标签元素
    配置sql server 允许远程连接
    Sql Server中使用存储过程来实现一些时间差的改变
    Linux学习资料整理
    后缀数组求字符串最长重复子串
    static关键字
    ubuntu下搭建hadoop平台
    机器学习中的一些概念
  • 原文地址:https://www.cnblogs.com/luyuefei/p/13386600.html
Copyright © 2011-2022 走看看