战争文件外部或内部的Web应用程序配置?

时间:2010-02-26 13:16:13

标签: java war web-applications

Web应用程序通常至少有一个配置文件,其中包含jdbc配置和其他设置。您可以将此类文件(-s)放在.war文件中或其外部。这些方法的缺点和优点是什么?你的方法是什么?为什么?

4 个答案:

答案 0 :(得分:9)

如果你需要在不同的环境中部署相同的战争,那么外面看起来最方便。喜欢,开发,itt,uat和生产。相同构建不同的配置。

答案 1 :(得分:2)

在我看来,应该永远不要将应用程序设置值与二进制文件合并。它们应放在单独的文件或数据库中。这是一个基本的最佳实践。您永远不知道您或其他任何人何时需要调整其中一个设置 - 您可能不在身边 - 或者源代码可能无法使用。

答案 2 :(得分:1)

恕我直言,最好的方法是使用灵活的方法,并允许配置在WAR内部和/或外部(配置查找顺序的一些额外逻辑以及可以保留配置的文件/目录名称。)

我有非常不同的部署模型/模式的经验 - 有时它是一个构建/许多配置,其他时间 - 甚至:在一个服务器上的许多构建/一个配置 - 奇怪,但可能发生; - )。

如果您正在开发某种平台,您的客户/用户可能会在WAR构建时未指定的自定义环境中部署,这可能会特别有用。

答案 3 :(得分:0)

将它们置于战争中并使用某种构建配置文件(如maven build profiles)。那样:

  • 您有一步到位的部署。无需手动编辑远程环境中的属性。
  • 您可以为不同的环境设置不同的工件(war文件),因此构建仍然是可移植的,但您不需要使用ZIP软件打开战争来修改设置。

实现/使用构建配置文件的方式取决于您的构建环境。