【问题标题】:updating a properties file in a web application更新 Web 应用程序中的属性文件
【发布时间】:2012-12-06 16:59:57
【问题描述】:

我有一个属性文件(在 rsources 文件夹下),其中存储了一个变量(key=value),

当用户插入新值或更新旧值时,我需要更新它,我可以这样做吗? 我有疑问,因为它是一个 Web 应用程序,所以它只是部署在服务器中的战争。那么如何访问 .properties 文件并直接从代码中进行更改呢?

如果不行,有没有其他解决办法?

【问题讨论】:

    标签: java tomcat web-applications properties-file


    【解决方案1】:

    也许用户可以在文件系统中提供一个覆盖属性文件,其值将覆盖打包的默认属性文件。

    查看Apache Commons Configuration,其中permits this capability

    通常您希望提供一组基本配置值,但 允许用户轻松地为他们的特定环境覆盖它们。 一种方法是将默认值硬编码到您的代码中,并且 然后提供一个覆盖它的属性文件。然而,这 是一种非常死板的做事方式。相反,随着 CompositeConfiguration 可以提供多种不同的设置方式 进行配置。

    【讨论】:

    • 但是不能在客户端机器上写入
    • 任何地方?在临时目录中?注册表中的临时值?您部署到的临时文件?
    【解决方案2】:

    您可以在数据库中创建一个新表(例如 T_PROPERTIES)并在表中添加/修改行,而不是修改属性文件。 定义具有 2 列、键和值的表,并相应地更改记录。

    【讨论】:

      【解决方案3】:

      您可以让用户写入属性文件,但我认为这样做不太干净。 java.util 包中有一个名为“Properties”的类,您可以使用该类从您的 Web 应用程序中加载物理属性文件的表示。

      例如,要加载属性文件,您可以使用以下代码:

       public void loadProps(File pfile) throws IOException {
          Properties props = new Properties();
          FileInputStream fis = new FileInputStream(propsFile);
          props.load(fis);    
          fis.close();
      }
      

      现在您可以使用内置命令来操作文件: -setProperty(字符串键,字符串值); -get(对象键);

      完成后,您只需调用属性对象的保存方法即可。 为此,您将需要一个 OutputStream。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-30
        • 1970-01-01
        • 2011-04-11
        • 2015-08-28
        • 2013-06-20
        • 1970-01-01
        • 2013-06-18
        相关资源
        最近更新 更多