我有一个使用 spring 的独立 jar。我的 spring xml 中的配置使用了我在使用 maven 编译时替换的占位符。 Spring 配置示例:
<bean id="foo" class="package.Foo">
<property name="host" value="${db.host}" />
</bean>
我不想使用 maven 替换 ${db.host}
我想在运行时传递一个属性文件,例如
java -jar Application.jar productionDB.properties
这将允许我通过传入生产数据库属性文件或测试数据库属性文件来在运行时切换数据库主机。
是否可以做到这一点,或者是否有更好的方法来实现相同的目标?
最佳答案
您可以将属性文件指定为系统属性,例如:
java -jar Application.jar -DappConfig=/path/to/productionDB.properties
然后您应该能够在应用程序上下文中引用它:
<context:property-placeholder location="file:${appConfig}"/>
<bean id="foo" class="package.Foo">
<property name="host" value="${db.host}" />
</bean>
关于java - 是否可以在运行时指定上下文属性占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15880081/