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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

plsql 为空显示 0 的函数_不加班只加薪!从0到1教你制作出入库进销存表格

出入库表应用十分广泛,是每个公司都用到的表格,下面我们来看看怎么从一张空白表一步一步实现《出入库表》的制作,目的是做到只需要记录出库入库流水,自动对库存及累计出入库数量进行计算、实时统计。出入库表构成做一个出入库表&a…

eShopOnContainers学习系列(一):Swagger的使用

最近在看eShopOnContainer项目,抽取一下其中的基础知识点,做个记录,有兴趣的可以看下。 新建一个.net core API项目,添加Nuget包 Swashbuckle.AspNetCore.SwaggerGen、Swashbuckle.AspNetCore.SwaggerUI: 然后在启动文…

结合WebSocket编写WebGL综合场景示例

在WebGL场景中导入多个Babylon骨骼模型,在局域网用WebSocket实现多用户交互控制。 首先是场景截图: 上图在场景中导入一个Babylon骨骼模型,使用asdw、空格、鼠标控制加速度移动,在移动时播放骨骼动画。 上图在场景中加入更多的骨…

awk----基本用法

awk具体的请看这个 https://www.cnblogs.com/bwbfight/p/9402738.html awk 竟然自诩一种语言,ok.... 牛 既然这样就学习一下吧 awk -F‘[指定多个分隔符]’ 比如 awk -F[ :]表示指定:空格为分隔符 涉及多个重复分割符可以这样指定 awk -F[ :] 表示多个空…

java按条件查询结果为空_mybatis中查询结果为空时不同返回类型对应返回值问题...

今天在别人的代码基础上实现新需求,看到对于mybatis查询结果的判断不是很正确,如果查询结果为空就会异常,不知道大家有没有这样的疑惑:mybatis中resultType有多种返回类型,对于每种不同类型,查询结果为空时…

object picker 微信小程序_微信小程序 demo分享

选择器示例demo:1.普通选择器 2.多列选择器 3.时间选择器 4.日期选择器 5.省市区选择器wxml普通选择器:(普通数组)当前选择:{{array[index]}}普通选择器2:(普通json格式数组)当前选择:{{objectArray[objectIndex].name…

项目学生:分片集成测试数据

这是Project Student的一部分。 其他职位包括带有Jersey的 Web服务 客户端,带有Jersey的 Web服务服务器 , 业务层和带有Spring Data的持久性 。 到目前为止,所有集成测试都使用了内存嵌入式数据库,该数据库无法一次又一次地保留信…

BZOJ1036 树的统计(树链剖分+线段树)

【题目描述】 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问…

Unity插件Gaia使用介绍

零基础创建Unity精美场景地形(使用插件Gaia)一、先上最终效果图二、软件环境搭建1.Unity5.6.0下载链接https://unity3d.com/cn/get-unity/download/archive?_ga2.110664517.1175563345.1516068066-173539005.15020707552.Gaia Unity地形制作插件下载链…

java http 压缩_解压HTTP API的GZIP压缩数据

1.对Java后端的请求HttpURLConnection对象中的消息头设置压缩connection.setRequestProperty("Accept-Encoding", "gzip, deflate");2.发送请求后获取response中的content-encodingconnection.getContentEncoding(); // 获取content-encoding3.如果content…

20151208_使用windows2012配置weblogic节点管理器

经过实践,weblogic节点管理器的作用主要有两点: 1、可通过weblogic控制台远程控制被管server启停。 2、可以自动重启被管server的进程,并且对spring框架提供比直接启动更快的重启速度。 配置步骤: 在管理电脑上: …

python各种包安装顺序_史上最全的Python包管理工具:Anaconda教程

事实上Anaconda 和 Jupyter notebook已成为数据分析的标准环境。简单来说,Anaconda是包管理器和环境管理器,Jupyter notebook 可以将数据分析的代码、图像和文档全部组合到一个web文档中。接下来我详细介绍下Anaconda,并在最后给出Jupyter no…

在Spring MVC中使用多个属性文件

每个人都听说过将单个Web应用程序组合成一个大型应用程序的门户。 门户软件的工作原理类似于mashup -来自多个来源的内容在单个服务中被拾取,大部分显示在单个网页中。 门户软件还允许在嵌入到门户软件中的所有单个Web应用程序(独立模块&…

汇编语言实验一

实验任务 (1)使用debug,将程序段写入内存,逐条执行,观察cpu中相关寄存器内容变化。 完成此实验,可用e命令或a命令。 e命令改写内存的内容,如图: 我没有一气喝成,一开始便…

python学习 day6 (3月7日)

#__author : liuyang #date : 2019/3/7 0007 a [a , b , c] b [] print(a is b ) # 空元组 可以 空列表 不可以 print(tuple(a))题目: l1 [11, 22, 33, 44, 55] #将此列表索引为奇数的对应元素全部删除 # 错误示例 for l in range(len(l1)):print(l)if l % 2…

java jni helloword_JNI入门教程之HelloWorld篇

JNI入门教程之HelloWorld篇来源:互联网 宽屏版 评论2008-05-31 09:07:11本文讲述如何使用JNI技术实现HelloWorld,目的是让读者熟悉JNI的机制并编写第一个HelloWorld程序。java Native Interface(JNI)是Java语言的本地编程接口,是J2SDK的一部分。在java…

centos7 python3安装numpy_centos 7 下安装numpy、scipy等python包

本文适用于刚入门的小白,欢迎大牛们批评指正。因为要开始数据分析,而python又不像R和matlab那么简洁。需要安装的包很多~网上找了好多牛人博客,想在centos7下安装numpy,scipy等包,一开始就懵逼了,网上的指导…

11、Node.js 函数

内容:普通函数,匿名函数,函数传递是如何让HTTP服务器工作的 ###普通函数例子: function say(word) {console.log(word); } function execute(someFunction, value) {someFunction(value); } execute(say, "Hello"); ###…

休眠事实:集成测试策略

我喜欢集成测试,这是检查Hibernate生成哪些幕后花絮的SQL查询的好方法。 但是集成测试需要运行的数据库服务器,这是您必须要做的第一选择。 1.使用类似生产的本地数据库服务器进行集成测试 对于生产环境,我始终喜欢使用增量DDL脚本&#xff…

select多查询,自连接,join 等

题目来源于leetcode中的数据库部分:181. Employees Earning More Than Their Managers 题目:The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id. ----------…