通过环境。进入我的application-config.xml

时间:2012-12-04 14:48:09

标签: java spring config

我目前正在开发一个java应用程序。该应用程序有3个不同的属性文件。我希望能够根据运行应用程序的服务器名称设置属性文件的名称。

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
     <list>
        <value>classpath:/config/InfSit.properties</value>      
     </list>
    </property>
 </bean>

这是来自我的application-config.xml,目前工作正常。我希望能够根据运行应用程序的服务器更改属性文件的名称。所以“InfSit.properties”将是“Inf $ {Env} .properties”(或者沿着这些方向的东西) - 但是我需要一种传递$ {Env}参数的方法(甚至可以是来自另一个类的字符串)。谁能建议最好的方法呢?

感谢。

2 个答案:

答案 0 :(得分:0)

只需设置变量并引用它,我就像CATALINA_HOME一样:

<context:property-placeholder location="file:${catalina.home}/conf/database_UAT.properties"
                                  ignore-unresolvable="true"/>

只需确保正确设置变量......

答案 1 :(得分:0)

在java args中设置系统属性

java -Denv=Sit ...

它将替换位置expr中的$ {env}

<context:property-placeholder location="classpath:/config/Inf${env}.properties" />