0

我目前正在开发一个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} 参数(甚至可以是另一个类的字符串)。谁能建议最好的方法来做到这一点?

谢谢。

4

2 回答 2

0

在 java args 中设置系统属性

java -Denv=Sit ...

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

<context:property-placeholder location="classpath:/config/Inf${env}.properties" />
于 2012-12-04T16:10:52.717 回答
0

只需设置变量并引用它,我与 CATALINA_HOME 类似:

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

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

于 2012-12-04T14:54:27.707 回答