处理Java Web应用程序的环境特定设置的最佳实践?

时间:2010-01-21 21:16:23

标签: deployment web-applications installer

我有一个Java Web应用程序,可以在一个属性文件中卸载一些特定于环境的设置(Hibernate配置,所需的目录路径等),该文件最终打包在已部署的WAR中。如果我希望分发此Web应用程序,处理这些设置管理的最佳方法是什么?要求用户打开WAR,更新属性文件,重新打包WAR,然后进行部署是不可行的。我想要创建一个安装程序(例如NSIS,WiX),询问属性,将它们写入WAR,然后请求WAR的部署位置。另一个选项是将属性文件放在WAR外部,并根据约定,Web应用程序将知道在何处读取文件。在这种情况下,最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

某些需要此类配置并且面临此问题的项目,使用在将部署项目的服务器上构建项目(和.war)的方法。

所以而不是:

  • 将预先打包的.war文件复制到有意义的位置

你得到:

  • 检查SCM(Subversion,CVS等)的源代码
  • 配置尝试
  • 构建项目(使用Maven或Ant自动化)
  • 部署项目(通常也使用Maven或Ant自动化)

从这里,您可以通过将每个服务器的配置文件检查到SCM中来获得乐趣。这种方法允许你版本&审核配置更改。

答案 1 :(得分:0)

我在项目中也遇到了同样的问题。我之前的开发人员已经对解决方案进行了原始修复,该解决方案在hibernate.hbm.cfg.xml文件中添加了所有必需的配置并对其进行了注释。根据需要取消注释所需的配置。然而,问题有一个更好的解决方案。

  1. 使用配置文件夹架构
  2. 使用配置参数读取器
  3. 使用ConfigurationReader组件
  4. 来源:http://www.javaworld.com/javaworld/jw-11-2004/jw-1108-config.html