修改配置不用重启服务的一种配置文件读取方式
来源:互联网 发布:极米投影仪怎么样 知乎 编辑:程序博客网 时间:2024/05/16 12:18
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Properties;/** * 加载socket配置文件. * */public final class LoadConfigUtil {/** * 属性文件全名"config/XXXX.properties". */private static final String PFILE = "config/test.properties";/** * 配置文件. */private Properties properties = null;/** * 对应属性文件. */private File file = null;/** * 属性最后修改日期. */private long lastModifiedTime = 0;/** *单例. */private static LoadConfigUtil instance = new LoadConfigUtil();/** * 私有构造方法. */private LoadConfigUtil() {file = new File(PFILE);lastModifiedTime = file.lastModified();if (lastModifiedTime == 0) {System.err.println(PFILE + "配置文件不存在");}try {properties = new Properties();properties.load(new FileInputStream(PFILE));} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}/** * 获得单例. * * @return instance. */public static synchronized LoadConfigUtil getInstance() {return instance;}/** * 获得文件属性. * * @param name * 参数名. * @param defaultVal * 默认值. * @return 属性值. */public String getConfigItem(String name, String defaultVal) {long newTime = file.lastModified();System.out.println("newtime:" + newTime);System.out.println("lastime:" + lastModifiedTime);// 检查属性文件是否被修改 ture则重新读取文件if (newTime == 0) {if (lastModifiedTime == 0) {System.err.println(PFILE + "配置文件不存在");} else {System.err.println(PFILE + "配置文件被删除");}return defaultVal;} else if (newTime > lastModifiedTime) {properties.clear();try {properties.load(new FileInputStream(PFILE));lastModifiedTime = newTime;} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}String val = properties.getProperty(name);if (val == null) {return defaultVal;} else {return val;}}public String getXxx() {return getConfigItem("xxx", "");}public static void main(String[] args) throws InterruptedException {String result = LoadConfigUtil.getInstance().getXxx();System.out.println(result);Thread.sleep(10000);result = LoadConfigUtil.getInstance().getXxx();System.out.println(result);}}
演示,在程序休眠期间,修改配置文件,即可得到新结果
newtime:1386732846531lastime:13867328465316newtime:1386931021114lastime:13867328465317
0 0
- 修改配置不用重启服务的一种配置文件读取方式
- 修改配置文件不用重启tomcat
- 修改Java文件不用重启Tomcat服务的方法
- 修改Java文件不用重启Tomcat服务的方法
- 修改Java文件不用重启Tomcat服务的方法
- apache commons configuration自动加载修改的配置文件不用重启服务器
- weblogic下开发web项目时修改java文件不用重启的绿色方法,不用修改weblogic的配置文件、不用jar
- 修改Java文件不用重启Tomcat服务
- 修改Java文件不用重启Tomcat服务
- [JAVA]修改Java文件不用重启Tomcat服务的方法
- [JAVA]修改Java文件不用重启Tomcat服务的方法
- 修改jsp、Java文件不用重启Tomcat服务的方法
- Maven 菜鸟教程 5 修改js不用重启的方式
- 配置Tomcat使得修改JSP文件不用重启Tomcat
- postfix及bind9修改配置文件后,不要重启服务。
- 修改时区不用重启
- 设置tomcat配置文件,在Myeclipse中修改jsp文件之后不用重启tomcat
- 设置tomcat配置文件,在Myeclipse中修改jsp文件之后不用重启tomcat
- 使用反射复制一个JavaBean的对象
- MTK android多端口下载工具和说明文档
- Centos编译安装Apache 2.4.6笔记 配置
- 社會의 腐敗 (朝鮮歷史 韓長庚)
- fzu 2111 Min Number(贪心)
- 修改配置不用重启服务的一种配置文件读取方式
- erlang shell 命令中文使用说明
- Installation of Apache HTTPD
- nginx的超时处理
- 黑马程序员--正则表达式
- maven工程中修改javascript文件失败can't write
- Oracle 11g sys,system 密码忘记设置解决办法
- 创建静态库以及引用库文件
- 黑马程序员_温习 多线程 (个人笔记)