问题描述:
我原本是用的如下方式:(也是最常见的方式)
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 填写表单内容未生效
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
编译原理
Alfred V. Aho、Monica S.Lam、Ravi Sethi、Jeffrey D. Ullman / 赵建华、郑滔、戴新宇 / 机械工业出版社 / 2008年12月 / 89.00元
本书全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,本书进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。 本书是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研......一起来看看 《编译原理》 这本书的介绍吧!