不重启动服务器动态加载properties文件改动
2011-11-28 11:50
267 查看
package com;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
import java.util.Properties;
import org.apache.log4j.helpers.Loader;
/**
* <li>;Project: test
* <li>File Name: ConfigManager.java
* <li>Title: ConfigManager
* <li>Description: 从《Java 与 模式》中找到的一个可以管理properties文件的管理器,
* 可以处理文件在系统运行期间的改动。采用了单例模式
* <li>Copyright: Copyright (c) 2000-2005
* <li>Company:
*
* @author no Author 访问方式示例: Object
* o=ConfigManager.getInstance().getConfigItem(key,null); if(o==null){
* throw new Exception("System 获取字符串" + key + "失败!"); }
*
*
*/
public class ConfigManager {
private static ConfigManager m_instance;
private static String PFILE;
synchronized public static ConfigManager getInstance() {
if (m_instance == null) {
if (PFILE == null) {
URL url = Loader.getResource("./my_config.properties");
PFILE = url.getPath();
PFILE = StringUtil.replaceAll(PFILE, "%20", " ");
}
m_instance = new ConfigManager();
}
return m_instance;
}
private File m_file = null;
private long m_lastModifiedTime = 0;
private Properties m_props = null;
private ConfigManager() {
m_file = new File(PFILE);
m_lastModifiedTime = m_file.lastModified();
if (m_lastModifiedTime == 0) {
System.err.println(PFILE + " file does not exist!");
}
m_props = new Properties();
try {
m_props.load(new FileInputStream(PFILE));
} catch (Exception e) {
e.printStackTrace();
}
}
final public Object getConfigItem(String name, Object defaultVal) {
long newTime = m_file.lastModified();
if (newTime == 0) {
if (m_lastModifiedTime == 0) {
System.err.println(PFILE + " file does not exist!");
} else {
System.err.println(PFILE + " file was deleted!!");
}
return defaultVal;
} else if (newTime > m_lastModifiedTime) {
m_props.clear();
try {
m_props.load(new FileInputStream(PFILE));
} catch (Exception e) {
e.printStackTrace();
}
}
m_lastModifiedTime = newTime;
Object val = m_props.getProperty(name);
if (val == null) {
return defaultVal;
} else {
return val;
}
}
}
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
import java.util.Properties;
import org.apache.log4j.helpers.Loader;
/**
* <li>;Project: test
* <li>File Name: ConfigManager.java
* <li>Title: ConfigManager
* <li>Description: 从《Java 与 模式》中找到的一个可以管理properties文件的管理器,
* 可以处理文件在系统运行期间的改动。采用了单例模式
* <li>Copyright: Copyright (c) 2000-2005
* <li>Company:
*
* @author no Author 访问方式示例: Object
* o=ConfigManager.getInstance().getConfigItem(key,null); if(o==null){
* throw new Exception("System 获取字符串" + key + "失败!"); }
*
*
*/
public class ConfigManager {
private static ConfigManager m_instance;
private static String PFILE;
synchronized public static ConfigManager getInstance() {
if (m_instance == null) {
if (PFILE == null) {
URL url = Loader.getResource("./my_config.properties");
PFILE = url.getPath();
PFILE = StringUtil.replaceAll(PFILE, "%20", " ");
}
m_instance = new ConfigManager();
}
return m_instance;
}
private File m_file = null;
private long m_lastModifiedTime = 0;
private Properties m_props = null;
private ConfigManager() {
m_file = new File(PFILE);
m_lastModifiedTime = m_file.lastModified();
if (m_lastModifiedTime == 0) {
System.err.println(PFILE + " file does not exist!");
}
m_props = new Properties();
try {
m_props.load(new FileInputStream(PFILE));
} catch (Exception e) {
e.printStackTrace();
}
}
final public Object getConfigItem(String name, Object defaultVal) {
long newTime = m_file.lastModified();
if (newTime == 0) {
if (m_lastModifiedTime == 0) {
System.err.println(PFILE + " file does not exist!");
} else {
System.err.println(PFILE + " file was deleted!!");
}
return defaultVal;
} else if (newTime > m_lastModifiedTime) {
m_props.clear();
try {
m_props.load(new FileInputStream(PFILE));
} catch (Exception e) {
e.printStackTrace();
}
}
m_lastModifiedTime = newTime;
Object val = m_props.getProperty(name);
if (val == null) {
return defaultVal;
} else {
return val;
}
}
}
相关文章推荐
- Java中动态加载properties文件,而不需要重启应用的解决方法
- Java中动态加载properties文件,而不需要重启应用的解决方法
- java不重启服务动态加载properties文件
- Java中动态加载properties文件,而不需要重启应用的解决方法
- JAVA动态加载properties,不需要重启服务器
- Java中动态加载properties文件,而不需要重启应用的解决办法
- JAVA 动态加载properties配置文件
- spring 如何动态加载properties文件的内容
- Java Properties无需重启服务器即可动态读取最新键值
- 【笔记】Configuration对properties、xml配置文件的【增删改查】及动态加载
- apache commons configuration自动加载修改的配置文件不用重启服务器
- Java动态加载属性文件.properties
- JAVA Servlet 动态加载配置文件.properties
- 检查远程服务器的js不可用时,动态加载本地服务器文件
- java非web应用修改 properties/xml配置文件后,无需重启应用即可生效---自动加载
- Javaweb项目不用重启加载properties文件的方法(根据时间戳来判断)
- spring 如何动态加载properties文件的内容
- Java实现动态加载读取properties文件
- Java Properties无需重启服务器即可动态读取最新键值
- Apache 加载配置文件不重启