diff --git a/common/src/main/java/com/zheng/common/util/PropertiesFileUtil.java b/common/src/main/java/com/zheng/common/util/PropertiesFileUtil.java index 78779d63..4dd81dae 100644 --- a/common/src/main/java/com/zheng/common/util/PropertiesFileUtil.java +++ b/common/src/main/java/com/zheng/common/util/PropertiesFileUtil.java @@ -1,26 +1,63 @@ package com.zheng.common.util; +import java.util.Date; +import java.util.HashMap; +import java.util.MissingResourceException; import java.util.ResourceBundle; /** - * 配置文件读取工具 + * 资源文件读取工具 * * @author shuzheng * @date 2016年10月15日 */ public class PropertiesFileUtil { + // 当打开多个资源文件时,缓存资源文件 + private static HashMap configMap = new HashMap(); + // 打开文件时间,判断超时使用 + private Date loadTime = null; + // 资源文件 private ResourceBundle resourceBundle = null; + // 默认资源文件名称 + private static final String NAME = "config"; - public PropertiesFileUtil(String bundleFile) { - resourceBundle = ResourceBundle.getBundle(bundleFile); + // 私有构造方法,创建单例 + private PropertiesFileUtil(String name) { + this.loadTime = new Date(); + this.resourceBundle = ResourceBundle.getBundle(name); } - public String getValue(String key) { - if (null == resourceBundle) { - return null; + public static synchronized PropertiesFileUtil getInstance() { + return getInstance(NAME); + } + + public static synchronized PropertiesFileUtil getInstance(String name) { + PropertiesFileUtil conf = configMap.get(name); + if (null == conf) { + conf = new PropertiesFileUtil(name); + configMap.put(name, conf); } - return resourceBundle.getString(key); + // 判断是否打开的资源文件是否超时1分钟 + if ((new Date().getTime() - conf.getLoadTime().getTime()) > 60*1000) { + conf = new PropertiesFileUtil(name); + configMap.put(name, conf); + } + return conf; + } + + // 根据key读取value + public String get(String key) { + try { + String value = resourceBundle.getString(key); + return value; + }catch (MissingResourceException e) { + return ""; + } + } + + public Date getLoadTime() { + return loadTime; } }