在哪里放置j2ee web app的特定于应用程序的配置/属性/ APP_HOME?

时间:2011-07-27 12:10:08

标签: java-ee spring-mvc web-applications

#1 - 在重新启动和重新部署应用程序后,需要保留的Web应用程序配置的常用位置在哪里?它必须位于Web应用程序目录之外的某个位置,以避免在部署新战争时被覆盖。我发现的一个例子是始终对启动Web容器的用户使用$ HOME / .my_app_name,但是如果用户更改该怎么办?所有配置都将丢失。

#2 - 如果这个位置是动态的,通知我的webapp这个位置的常用方法是什么?

这是我能找到的唯一例子,但我没有找到任何关于此标准的正式指示。 http://wiki.hudson-ci.org/display/HUDSON/Administering+Hudson

1 个答案:

答案 0 :(得分:0)

我明白它需要可写吗?所以类路径是不可能的。

将路径提供为JVM启动参数:

-Dconfig.location="/path/to/config/files"

这种方式可以System#getProperty()使用。

String configLocation = System.getProperty("config.location");
File configFile = new File(configLocation, "config.properties");
// ...

在您的webapp的安装/使用手册中正确记录。相应地实现您的代码,只要该属性丢失或者路径不存在或者不可写,它就会抛出一个清晰的运行时异常,以便sysadmin可以很容易地修复它。