java中重新加载指定文件_java-更改后重新加载属性文件
我将属性文件加载到一个类中,然后在整个应用程序中使用该类来获取它们.
public class PropertiesUtil extends PropertyPlaceholderConfigurer {
private static Map properties = new HashMap();
@Override
protected void loadProperties(final Properties props) throws IOException {
super.loadProperties(props);
for (final Object key : props.keySet()) {
properties.put((String) key, props.getProperty((String) key));
}
}
public String getProperty(final String name) {
return properties.get(name);
}
}
并在ApplicationContext.xml中
class="com.test.PropertiesUtil">
classpath:test/test.properties
现在,我想确保每当更改属性文件时都会重新加载.
我有一个侦听器类,它与tomcat服务器一起初始化.
而且我已经为文件监视程序编写了以下逻辑
TimerTask task = new FileWatcher(new File("c:\\temp-reb\\config\\config.properties")) {
/*
* (non-Javadoc)
* @see com.belgacom.rosy.rebecca.utils.FileWatcher#onChange(java.io.File)
*/
@Override
protected void onChange(File file) {
loadServiceProperties(file);
loadMetadata();
}
};
Timer timer = new Timer();
timer.schedule(task, new Date(), Long.valueOf(properties.getProperty("properties.file.timer.schedule"))); // repeat the check every second
问题是
FileWatcher needs path to run, which I don’t want to hardcode
How do I tell spring to call properties to reload explicitly!
解决方法:
FileWatcher needs path to run, which I don’t want to hardcode
只需提供相对路径,例如在同一项目文件夹中的资源目录,就可以使用getResource()方法获得该相对路径.您还可以使用system property来访问user.dir这样的用户目录,这是使用工作目录.
File f = new File(System.getProperty("user.dir")+ "/test.properties");
System.out.println(f.getAbsolutePath());
2. How do I tell spring to call properties to reload explicitly!
目前,您的操作方式对我来说似乎还可以.可能还有其他方法,但是我看不到上述过程有任何缺陷.
标签:properties,file,spring,java
来源: https://codeday.me/bug/20191031/1976429.html
java中重新加载指定文件_java-更改后重新加载属性文件相关推荐
- 【Groovy】Groovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )
文章目录 前言 一.Groovy 动态语言 二.Groovy 中的变量自动类型推断及动态调用 三.Java 中必须为变量指定其类型 前言 Groovy 是动态语言 , Java 是静态语言 ; 一.G ...
- java中字母用什么单词赋值_Java初学
Java-SUN 语言平台J2SE(桌面) ,J2ME(移动被安卓所取代),J2EE(企业主要用于web) 1.跨平台(操作系统)原理: 在任意操作系统上运行,一次编写到处运行. 依赖JVM(Java ...
- Java中为什么有时候通过指定编码集无法解决乱码
@TOC Java中为什么有时候通过指定编码集无法解决乱码 当我们编程的时候都遇到过出现乱码的情况,这通常是使用了不匹配的编码表导致的,这是我们可以用指定的编码表的方式解决乱码问题如下面 的代码 St ...
- Java中进入wait状态的线程被唤醒后会接着上次执行的地方往下执行还是会重新执行临界区的代码
Java中进入wait状态的线程被唤醒后会接着上次执行的地方往下执行还是会重新执行临界区的代码 用一个例子来说明: 例子原理 启动一个线程A打印数字,从0打印到9,在数字等于5的时候,进入wait状态 ...
- 通过外部文件覆盖打包的Spring应用程序属性文件
开发Spring应用程序时,最常见的用例是您希望拥有多个版本的配置属性,具体取决于要部署到的位置,例如,数据库URL或功能标志可能是特定于dev,qa,production等环境的. 像大多数Spri ...
- java中class.forname连接mysql数据库_Java加载数据库连接驱动,为什么要用Class.forName()方法?...
展开全部 目的是为了实例化对象. Class.forName("")返回的是类e68a84323131333532363134313032313635333133336564363 ...
- Java中的类加载器(ClassLoader)及类的加载机制
类加载器就是用来将class文件加载到内存中的一个java类! 系统默认有三个类加载器! ①BootStrap:这不是java类,是java虚拟机在启动的时候加载的第一个类,这个加载器用来加载核心类, ...
- java中6与3等于几_Java(六)
接口 一.语法: public interface 接口名{ public void foo(): } 二.特征 1.接口不可被实列化 2.实现类必须实现接口所有方法 3.实现类可以实现多个接口 4. ...
- java中的class 类的作用_Java中Class和单例类的作用与类成员的理解
Java中Class类的作用与深入理解 在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识.这个信息跟踪着每个对象所属的类.JVM利用运行时信息选择相应的方法执行.而保存 ...
最新文章
- (0030) iOS 开发之跳转之转场动画
- Ceph:RBD在线扩容容量
- mysql的最佳索引攻略
- 流式计算框架Storm 编程案例部署Linux结果演示及pom依赖
- linux oracle目录权限不够,Linux 目录权限不足导致ORA-39070错误 | 信春哥,系统稳,闭眼上线不回滚!...
- apache zookeeper java_zookeeper启动报错java.net.NoRouteToHostException
- Microsoft Updater Application Block 1.5.3 服务器端manifest文件设计 [翻译]
- GitHub趋势:Vue.js大有超过TensorFlow之势!
- web.xml mysql_JSP登录验证脚本失败(mysql后端)web.xml servlet映射?
- python 之 string() 模块
- 软件架构师常会用到的几款软件
- 智能配送与货物跟踪图
- PlaySound函数用法
- 计算机网络原理 读书笔记
- springcloud后端集成支付宝支付踩坑记
- HTML5实现手机QQ表情功能
- happen before
- php查找最高分最低分,​热播网剧评分最高8.6分,最低只有5.3分,你猜到哪部剧最低吗?...
- python教程40-财务自动生成财务报表
- Python小工具:将对象转换为不可变类型并计算其哈希值
热门文章
- OpenCV cvtColor()函数
- 1 京东_推荐好友拿好礼 | 每1积分可兑换30元京东电子卡
- 运行错误5无效的过程调用或参数_FANUC系统常用参数汇总
- 算法工程师和python_算法工程师只掌握Python行吗?如果在java和cpp中选一门语言学习哪个更有用?...
- 如何做好内容策划并完成一篇合格的深度文?
- 【APICloud系列|26】UIScrollPicture 模块(图片轮播)的实现
- react学习路线图,学习react就是有捷径
- Angularjs基础(十)
- push和unshift方法
- JQ实现情人节表白程序