我的 Web 应用程序通过读取属性文件来执行它的一些行为。我想要一个可以在应用程序通过 jsp 界面运行时修改属性文件的管理控制台。我目前可以通过执行以下操作来读取属性文件:
Properties props = new Properties();
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(FILE_PATH));
然后我可以将它们传递给我的视图并显示它们。
但是,当我想修改它们时,我无法以相同的方式(需要输出流)找到属性文件来保存新的属性值,除非我将完整路径传递给文件。
我已经阅读过,修改 ClassLoader 提供给您的资源是一种不好的做法。如果我要将属性文件放在 Web 应用程序外部,如何确保在修改完成时它被锁定?还有另一种方法可以做到这一点(属性必须在 .properties 文件中)。
如果这有什么不同的话,我在使用 Spring MVC 的 Tomcat。