【问题标题】:How to modify properties file in a web app at runtime?如何在运行时修改 Web 应用程序中的属性文件?
【发布时间】:2012-11-20 17:15:20
【问题描述】:

我的 Web 应用程序通过读取属性文件来执行其某些行为。我想要一个管理控制台,可以在应用程序通过 jsp 界面运行时修改属性文件。我目前可以通过执行以下操作来读取属性文件:

Properties props = new Properties();
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(FILE_PATH));  

然后我可以将它们传递给我的视图并显示它们。

当我想修改它们时,我无法以相同的方式找到属性文件(需要输出流)来保存新的属性值,除非我将完整路径传递给文件。

我读到过,修改 ClassLoader 提供给您的资源是一种不好的做法。如果我要将属性文件放在 Web 应用程序外部,我如何确保在修改完成时它被锁定?有没有其他方法可以做到这一点(属性必须在 .properties 文件中)。

如果这有什么不同的话,我正在使用带有 Spring MVC 的 Tomcat。

【问题讨论】:

    标签: java web-applications spring-mvc properties resources


    【解决方案1】:

    我会将您当前的属性文件准确地保留在原处,并将其用作基本的“加载”源。所有覆盖都将转到 Web 应用程序外部的位置(使位置可配置)。你的启动逻辑永远是:

    • 加载基础源
    • 覆盖覆盖

    很明显,每当通过管理控制台更改属性时,它将被保存为覆盖。除了解决应用程序存档问题之外,此设置的一个不错的功能是您可以为用户提供将属性值恢复为其“默认值”的选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多