使用Spring处理战争之外的属性文件

时间:2012-03-01 19:18:02

标签: java spring tomcat jboss5.x

我正在开发一个访问LDAP和两个数据库的Spring 3.0.5 Web应用程序。我在applicationContext-security.xmldispatcher-servlet.xml中有一个包含LDAP服务器和数据库配置信息的属性,但我想这样做,这样每个服务器都可以拥有不同的数据属性而无需更改WAR中的文件。我可以以某种方式将文件放在服务器上的其他位置,并仍然可以从我的应用程序中访问它吗?

2 个答案:

答案 0 :(得分:6)

将此添加到您的上下文

<context:property-placeholder location="${envfile}"/>

这将加载位于$ {envfile}的属性文件,这是一个可以用Java的启动参数设置的变量,如下所示

-Denvfile="file:/var/server/environment.properties"

或者也许在Tomcat的启动脚本中

CATALINA_OPTS=" -Denvfile=file:/var/server/environment.properties"

可以使用Springs Value注释在控制器中检索值,如下所示:

@Values("${myvalue}")
private String myValue;

请注意,这些功能需要Spring 3.1,更多信息here

祝你好运!

答案 1 :(得分:0)

尝试

<util:properties id="props" location="file:///path/to/server.properties"/>