好用的properties资源文件读取工具类

Posted 辣椒炒肉er

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了好用的properties资源文件读取工具类相关的知识,希望对你有一定的参考价值。

下面代码是PropertyUtil 工具类,方便实际开发中快速从配置文件中取值,但是修改.property文件要想生效必须重启服务,导致项目维护困难,疑问抛在代码中,大佬有好的解决方案可以分享下。

public class PropertyUtil {

  private static PropertyUtil propertyUtil;
  private static Properties prop = null;

  /**
   * getPropertyUtil(读取Property文件内容)
   * @return Property文件内容
   */
  
  public static PropertyUtil getPropertyUtil() {
    if (propertyUtil == null) {
      propertyUtil = new PropertyUtil();
    }
    return propertyUtil;
  }

  public String getValue(String fileName, String key) {
    // 好用的资源文件读取
    if(prop == null){
      try {
        prop = new Properties();
        prop.load(PropertyUtil.class.getResourceAsStream("/" + fileName + ".properties"));
        /*properties文件被读取后,信息被放在缓存中,修改properties文件后,
          不重启服务服务的情况下,读取的值没有改变,在网上搜索了下面的解决方案
          但亲测不好用,是否有高手能够解决此问题*/
        // 获取绝对路径
//      String path = Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(1);
//      FileInputStream fis = null;
//      fis = new FileInputStream( path +fileName + ".properties");
//      InputStreamReader sr = new InputStreamReader(fis,"UTF-8");
//      prop.load(sr);
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      } 
    }
    return prop.getProperty(key)==null || prop.getProperty(key)==""?"":prop.getProperty(key);
  }
 
}

下面为调用部分代码

// 参数1为文件名 参数2为key
 String username = PropertyUtil.getPropertyUtil().getValue("user", "username");

 

以上是关于好用的properties资源文件读取工具类的主要内容,如果未能解决你的问题,请参考以下文章

类装载器读取properties资源文件

使用ResourceBundle 类读取 src 下的 xxx.properties 文件

properties文件读取工具类

JDBC工具类连接数据库,模仿登录

读取properties文件工具类

Springboot框架中如何读取位于resource资源中的properties配置文件,并将配置文件中的键对应的值赋值到目标bean中?