在生产环境中对beans.xml文件进行更改的最佳做法是什么?
让我们想象一下具有一个接口和2个实现的Hello World应用程序。在创建jar并运行JVM之后,我们如何在不打开jar并在之后重新组装jar的情况下更改beans.xml中的实现?
是否有任何技巧允许在jar外部使用beans.xml,但却不知道完整的文件系统路径?
答案 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
。