如何在应用程序上下文中读取系统环境变量?
我想要这样的东西:
<util:properties id="dbProperties"
location="classpath:config_DEV/db.properties" />
或
<util:properties id="dbProperties"
location="classpath:config_QA/db.properties" />
取决于环境的不同。
我可以在我的应用程序上下文中使用这样的东西吗?
<util:properties id="dbProperties"
location="classpath:config_${systemProperties.env}/db.properties" />
其中,实际val是根据系统环境变量设置的
我使用的是Spring3.0
发布于 2010-10-19 14:07:33
检查this article。它为您提供了几种方法,通过支持外部属性的PropertyPlaceholderConfigurer
(通过systemPropertiesMode
属性)。
发布于 2012-11-07 01:14:38
在bean定义中,确保包含"searchSystemEnvironment“并将其设置为"true”。如果你用它来构建一个文件的路径,把它指定为一个file:/// url。
例如,如果您的配置文件位于
/testapp/config/my.app.config.properties
然后像这样设置一个环境变量:
MY_ENV_VAR_PATH=/testapp/config
您的应用程序可以使用如下的bean定义加载文件:
例如:
<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="searchSystemEnvironment" value="true" />
<property name="searchContextAttributes" value="true" />
<property name="contextOverride" value="true" />
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>file:///${MY_ENV_VAR_PATH}/my.app.config.properties</value>
</list>
</property>
</bean>
发布于 2014-03-25 17:53:24
使用Spring EL,您可以按如下方式eis example编写
<bean id="myBean" class="path.to.my.BeanClass">
<!-- can be overridden with -Dtest.target.host=http://whatever.com -->
<constructor-arg value="#{systemProperties['test.target.host'] ?: 'http://localhost:18888'}"/>
</bean>
https://stackoverflow.com/questions/3965446
复制相似问题