问题描述:
我原本是用的如下方式:(也是最常见的方式)
InputStream is = PropertyFileUtil.class.getClassLoader()
.getResourceAsStream("Config.properties");
如果我改动了Config.properties文件,重新调用上面的代码去获取输入流,则读到的内容还是改动之前的内容。也就是说,上面这种方式对于Config.properties的改动是无效的,
原因是:上面这种方法自带了缓存。如果希望能改变Config.properties时能够重新加载,则可以使用下面的方法:
InputStream is = null;
String fileUrl = ReportConfig.class.getClassLoader()
.getResource("Config.properties").getPath();
fileUrl = fileUrl.replaceAll("%20", " ");
is = new BufferedInputStream(new FileInputStream(fileUrl));
这个方法是按实际路径 用FileInputStream去读取 的,所以能够读取到改动后的Config.properties。
PS:另外我发现一点, 在Websphere服务器上,替换了Config.properties文件,然后再重新读取配置内容,依然获得的是替换之前的内容 ,这就不是缓存的问题了,而是Websphere隐藏了最原始那份Config.properties文件,我们替换时不能将这个原始的版本替换掉(我们替换掉的实际上是只是一个副本)。貌似在Websphere上替换class和properties文件都需要重启服务器才会生效。我哪天把properties文件的后缀伪装成.jsp再试试………
以上所述就是小编给大家介绍的《properties文件改变不生效的问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- @Transactional事务生效问题
- UI抗锯齿不生效原因
- View.requestLayout() 不生效的问题
- C# Redis 过期机制不生效问题
- DrawMeshInstanced在Unity2018上不生效
- 通过 Chrome Console 填写表单内容未生效
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Everything Store
Brad Stone / Little, Brown and Company / 2013-10-22 / USD 28.00
The definitive story of Amazon.com, one of the most successful companies in the world, and of its driven, brilliant founder, Jeff Bezos. Amazon.com started off delivering books through the mail. Bu......一起来看看 《The Everything Store》 这本书的介绍吧!