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

SJS*_*SJS 6 java spring tomcat jboss5.x

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

Wes*_*ley 6

将其添加到您的上下文中

<context:property-placeholder location="${envfile}"/>
Run Code Online (Sandbox Code Playgroud)

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

-Denvfile="file:/var/server/environment.properties"
Run Code Online (Sandbox Code Playgroud)

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

CATALINA_OPTS=" -Denvfile=file:/var/server/environment.properties"
Run Code Online (Sandbox Code Playgroud)

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

@Values("${myvalue}")
private String myValue;
Run Code Online (Sandbox Code Playgroud)

请注意,这些功能需要Spring 3.1,更多信息请点击此处

祝好运!