【问题标题】:Elegant solution for managing .properties files in glassfish/tomcat/etc在 glassfish/tomcat/etc 中管理 .properties 文件的优雅解决方案
【发布时间】:2011-04-12 06:44:36
【问题描述】:

有没有人有很好的解决方案来管理 Web 应用程序中的 .properties 文件?目前,我必须在部署之前拆分 .war 文件,更改 .properties 文件中的条目,然后重新部署以更改设置。

或者,我可以通过 ssh 进入服务器,更改部署目录中的 .properties 文件并重新启动应用程序。

一位同事有一个相当优雅的解决方案,即使用 GUI 在 Tomcat/Glassfish 实例中设置 JNDI 属性并读取这些属性,而不是读取 .properties 文件。这里的问题是,在将应用程序移交给我们的运营团队时,他们需要知道将哪些属性添加到 JNDI。

有没有人找到解决这个问题的好方法?

【问题讨论】:

    标签: java configuration properties glassfish jndi


    【解决方案1】:

    如果您可以以 xml 格式存储属性(我相信 jdk 支持),那么有一堆开源库可以为此生成 crud ui....如果不是我找到的最接近的是 PropertySet @ @987654321 @

    【讨论】:

      【解决方案2】:

      一个简单的选择是将属性文件存储在 WAR 文件/webapp 的外部,以便 1)它们在每次部署时都不会更改,并且 2)不需要编辑。您只需要调整与 where 文件所在位置有关的 webapp 中的逻辑。

      另一个选项,只是稍微不那么简单,是在构建过程中使用过滤,以便构建 WAR 文件以包含针对目标环境定制的属性文件。 AntMaven 都支持使用令牌和过滤文件过滤某些资源的非常简单的机制。

      【讨论】:

      • ++ to matt b @Benju - 最好将属性文件放在通用的地方,如果您想抽象属性文件的位置,请通过 JNDI 变量或 JVM 变量抽象路径。通过这种方式,您可以动态确定属性文件的位置,并仅加载该环境所需的值。另一种选择是在您的 WAR 中使用 _envName 以文件名存储所有环境的属性文件(例如 myProperites_dev.properties 等)。现在您只需使用 JNDI 或 JVM 方法来查找 env 并找出哪个属性文件在运行时读取。
      猜你喜欢
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      相关资源
      最近更新 更多