我们在开发Java程序的时候,很多常量信息都存在配置文件中,比如数据库连接信息、ip黑名单,事件的超时时间等等。当需要该这些配置的值时都需要重新启动进程,改动的配置才会生效,有时候线上的应用不能容忍这种停服。
还好,Apache Common Configuration给我们提供了可以检测文件修改后配置可短时间生效的功能。具体用法如下:
package com.netease.test.commons; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy; import org.apache.log4j.Logger; /** * User: hzwangxx * Date: 14-3-13 * Time: 17:20 */ public class SystemConfig { private static Logger logger = Logger.getLogger(SystemConfig.class); private static PropertiesConfiguration config; static { try { //实例化一个PropertiesConfiguration config = new PropertiesConfiguration("/Users/hzwangxx/IdeaProjects/app-test/src/main/resources/conf.properties"); //设置reload策略,这里用当文件被修改之后reload(默认5s中检测一次) config.setReloadingStrategy(new FileChangedReloadingStrategy()); } catch (ConfigurationException e) { logger.error("init static block error. ", e); } } public static synchronized String getProperty(String key) { return (String) config.getProperty(key); } public static void main(String[] args) throws InterruptedException { for (;;) { System.out.println(SystemConfig.getProperty("key")); Thread.sleep(2000); } } } /* output: value value value 2014-03-13 17:54:37,251 12007 [main] INFO - Reloading configuration. URL is file:/Users/apple/IdeaProjects/app-test/src/main/resources/conf.properties updateValue updateValue */
这个比较实用,赞一个,牛刀小试了一把。
本文来源于:http://www.cnblogs.com/nexiyi/p/how_to_reload_properties.html
目前项目中用到的配置类请见附件,经验证,修改配置properties信息后,无须重启服务,调用类方法获取就可以得到最新的值
相关推荐
在在不重启tomcat的情况下重新加载类 的一个小例子
Reload Editor是一款非常实用的教学制作工具 可以将资源进行元数据化包装 同时包含了其所需的java虚拟机环境 傻瓜式安装,包射
修改 webpack 相关配置文件后,自动重启脚本命令,比如 dev-server,比较方便的是在调试 webpack 繁琐的配置时候,省去一遍遍地 Ctrl+c 和重复输入命令。 注意:只支持 webpack/webpack-dev-server 两个命令。 安装...
livereload chrome插件
支持子进程运行时reload 注意事项 System V 消息队列由于在程序退出时可能存在尚未处理完的数据,所以不会销毁。如果需要销毁,请调用$queue->remove()方法删除队列 共享内存会在...
当获取配置文件内容后,会开启一个goroutine,去 循环读配置文件,当然这里不可能不限制的一直循环,而是设置了一个定时器,定时去读文件,根据文件的修改时间是否变化,从而确定是否重新reload配置文件 实现的...
浏览器自动刷新插件, LiveReload for Sublime text3。
FIR 高级应用 FIR Reload 在线重新载入系数的使用 https://blog.csdn.net/qq_46621272/article/details/125348908 文章有该代码详细说明 https://blog.csdn.net/qq_46621272/article/details/125292610 FIR 使用...
我们都知道cisco的交换机清除配置是erase startconfig !然后reload就可以了,本文将详细介绍中兴三层交换机如何清除配置文件,需要的朋友可以参考下
这是livereload插件
重新载入Java 支持类重载的ClassLoader的简单实现运行示例构建项目开始示例 gradle buildjava -cp build/classes/test/:build/libs/reload-java-1.0.jar reload.ReloadExample1该应用程序将等待输入,输入r + 已加载...
livereload 浏览器自动预览软件
LiveReload for mac是一款跨平台的软件,在 OS X、Windows 以及 Linux 下都能使用。运行LiveReload for mac后载入网站源代码所在的文件夹,这样它就会开始识别。
很多时候,我们修改网页代码都要手动刷新一下看看效果,多了就比较麻烦了,livereload正是一个可以在你修改了代码后实时进行页面刷新的应用. 目前支持Google Chrome浏览器,非常方便。
connect-livereload, 连接中间件以将livereload脚本添加到响应 连接 livereload连接中间件以将livereload脚本添加到响应。 不需要浏览器插件。 如果你对浏览器插件感到满意,那么你不需要这个中间件。 安装npm ...
unity 热重载插件 Hot Reload Edit Code Without Compiling 1.12.9
chorme liveReload 是chorme的一个插件 结合grunt 可实现实时刷新
利用vs code开发前端界面时,在谷歌浏览器自动刷新页面。