做项目时,每次改一个配置文件,都需要重启,还挺烦的,正好测试部也提出来希望能够配置文件热更新,在网上也看了下设计方案。感觉都是依靠轮询。
下面就来说说整理的几种方案:
方案一: lastModified() 方法
通过轮询的方式,获取文件的最后修改时间,然后对比上一次的修改时间,判断文件是否已变更。
轮询的实现就不说了,七个定时器啥的,上一下判断变更的方式
/**
* @author <a href="mailto:Tastill">Tastill</a>
* @version 2019/1/24 13:54
* @description Test
*/
public class Test {
//上次更新时间 默认0
private static long modifiedTime = 0L;
public static void main(String[] args){
File file = new File("D:\\Test\\egov.properties");
long lastTime = file.lastModified();
if (lastTime > modifiedTime){//表示文件以变更
//处理逻辑
}
//处理完成后,变更文件更新时间
modifiedTime = lastTime;
}
}
方案二:通过appache提供的commons-io架包里FileAlterationListenerAdaptor类
1、maven添加commons-io依赖
<dependency>
<groupId>commons-io<

本文介绍了两种配置文件热更新的Java实现方法,包括利用`lastModified()`方法进行轮询检查和使用Apache Commons IO的`FileAlterationListenerAdaptor`监听文件变化。通过这些方法,可以避免因配置文件修改而频繁重启Web项目。
最低0.47元/天 解锁文章
1633

被折叠的 条评论
为什么被折叠?



