Java Web Application Configuration Patterns

是否有任何模式或最佳实践可用于简化跨多个环境的 Java Web 应用程序的配置文件更改。例如,JDBC URL、SOAP 端点等。

作为一些背景知识来帮助澄清我的问题,我使用几个大型Java Web应用程序,在任何给定的发布周期中,它们都会在6个不同的环境中移动;开发,集成,QA,性能,并最终部署到多个生产服务器。在每个环境中,配置都需要更改。目前,每个部署的大多数配置更改都是手动完成的,这既耗时又容易出错。
有没有办法将手动干预从此过程中删除?


答案 1

我很惊讶没有人引用Jakarta Commons Configuration API(http://commons.apache.org/configuration/)来回答这个问题。它允许您拥有文件的层次结构(或其他配置源,如XML,JNDI,JDBC等)。这就是Jeremy Seghi所说的,它为您提供了一种同时具有默认值和本地覆盖的好方法。

最好的部分是,它是一个经过测试的工作解决方案,所以你不必自己去制作一些东西。


答案 2

我最近倾向于更多地使用.NET,所以我的Java相当生锈。我很确定这可以在任何语言中工作,只需稍作调整。

我们使用 .NET 配置系统的扩展,该系统允许我们将特定于环境和/或应用程序的设置与更全局的配置结合使用。配置系统使用对每台计算机的全局设置将其标识为 dev、beta 或生产(默认值)。按顺序加载的一组文件,最后一个文件中的设置将覆盖在以前加载的文件中定义的任何设置。文件按以下顺序加载:

  1. 全局设置
  2. 特定于应用程序的设置
  3. 特定于应用程序的环境覆盖

所有文件都在源代码管理中,并且由于环境是在运行应用程序的计算机上定义的;由于除非计算机配置将其标识为“beta”,否则它不会访问“beta”配置,因此我们可以提升所有配置文件,而不必担心无意中将生产应用程序指向开发数据库。


推荐