FileChangedReloadingStrategy的简单使用
来源:互联网 发布:网络安全隐患 编辑:程序博客网 时间:2024/05/29 04:29
--------------------------------------------------------------------------------------------------------------------------------------
需求:当采用配置与代码分离时,如果只是修改配置文件(比如properties文件), 无需重启服务器
方案:采用commons-configuration-1.10.jar的org.apache.commons.configuration.reloading.FileChangedReloadingStrategy
来实现动态加载配置文件的问题
测试:step1: 启动main方法
step2: 修改当前类的class文件所在的目录下的reloadstrategy-test.properties文件里面的属性user.loginName
的值并保存文件,可以看到输出已更新为最新的值
---------------------------------------------------------------------------------------------------------------------------------------
示例代码采用Maven依赖:
<!-- https://mvnrepository.com/artifact/commons-configuration/commons-configuration --><dependency><groupId>commons-configuration</groupId><artifactId>commons-configuration</artifactId><version>1.10</version></dependency>
代码:
package cn.raysun.demo.shiro.other;import java.io.File;import org.apache.commons.configuration.ConfigurationException;import org.apache.commons.configuration.PropertiesConfiguration;import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;/** * {@code FileChangedReloadingStrategy}的测试类 * @author ray.sun * */public class FileChangedReloadingStrategyTest {//加载文件的频率private static final long RELOAD_PERIOD = 10L;private static PropertiesConfiguration config;public static void main(String[] args) {//获得当前类运行的classpath路径String currentClassPath = ClassLoader.getSystemResource("").getPath();initialize(currentClassPath + "reloadstrategy-test.properties");while(true){try {System.out.println("user=" + config.getString("user.loginName"));Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}}}//初始化配置文件和文件加载策略private static void initialize(String filePath){try {FileChangedReloadingStrategy fileChangedReloadingStrategy = new FileChangedReloadingStrategy();//设置扫描文件的最小时间间隔fileChangedReloadingStrategy.setRefreshDelay(RELOAD_PERIOD);//设置加载策略config = new PropertiesConfiguration(new File(filePath));config.setReloadingStrategy(fileChangedReloadingStrategy);} catch (ConfigurationException e) {e.printStackTrace();}}}
0 0
- FileChangedReloadingStrategy的简单使用
- FileChangedReloadingStrategy 动态的刷新重载Reload配置文件
- 简单易懂的使用
- ant的简单使用
- Log4j的简单使用
- TCPDUMP的简单使用
- IComparer的简单使用
- TreeView的简单使用
- CListCtrl的简单使用
- Rose的简单使用
- OpenSSL的简单使用
- CInternetSession的简单使用
- 标签的简单使用
- 触发器的简单使用
- nekohtml的简单使用
- FileUpload的简单使用
- JFreeChart的简单使用
- JMX的简单使用
- SpringWebsocket +Stomp+SockJS实现消息订阅和推送
- Windwos 7 Install WordPress
- 动态分区分配算法
- https原理:证书传递、验证和数据加密、解密过程解析
- structs2学习(三):使用公用结果集
- FileChangedReloadingStrategy的简单使用
- PyPI使用国内源
- Android Studio SVN使用
- iOS 通过(lame)将录制音频转换成Mp3
- 使用importtsv命令加载数据
- 小鑫去爬山
- java使double保留两位小数的多方法 java保留两位小数
- WebStorm开发工具设置React Native代码智能提醒
- android - RelativeLayout无法填充ScrollView