我目前正在开发一个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}参数的方法(甚至可以是来自另一个类的字符串)。谁能建议最好的方法呢?
感谢。
答案 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" />