春天生产

时间:2011-02-07 14:57:33

标签: spring

在生产环境中对beans.xml文件进行更改的最佳做法是什么?

让我们想象一下具有一个接口和2个实现的Hello World应用程序。在创建jar并运行JVM之后,我们如何在不打开jar并在之后重新组装jar的情况下更改beans.xml中的实现?

是否有任何技巧允许在jar外部使用beans.xml,但却不知道完整的文件系统路径?

2 个答案:

答案 0 :(得分:2)

除了OrangeDog提出的建议之外,我建议考虑将beans.xml留在已部署的应用程序中并使用PropertyOverrideConfigurer mechanism

将覆盖配置器配置为指向应用程序外部的某个固定路径,类似/opt/configuration/something/override.properties这样的理想选择。如果您不能使用绝对路径,则始终可以尝试使用file:../../..样式的路径。然后,您只能列出override.properties文件中更改的值。

答案 1 :(得分:1)

在JAR中没有XML。您的应用程序应至少部署在WAR中,应用程序服务器可能会“爆炸”。文件夹WEB-INF / classes将添加到类路径中。您可以在此处对展开的XML进行更改,并且应用服务器应检测到此并重新加载应用。

编辑:

如果您使用的是纯Java SE,则可以使用系统属性来传递XML文件的位置。代码中为System.getProperty("property"),命令行中为-Dproperty=value