我正在尝试在Spring属性文件中使用环境变量,但它似乎不起作用
应用正在运行
export TEST_VAR=hello
myapp.properties
test.variable=${TEST_VAR}
enter code here
但是当我测试时,test.variable不会转换为hello但保持$ {TEST_VAR}。
如何从该文件中获取Env变量?
我以这种方式加载属性文件
<bean id="props" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="singleton" value="true" />
<property name="ignoreResourceNotFound" value="false" />
<property name="locations">
<list>
<value>classpath:myapp.properties</value>
<value>file://#{systemProperties['myApp.configurationFile']}</value>
</list>
</property>
</bean>
<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
<property name="properties" ref="props" />
</bean>
<bean id="properties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties" ref="props" />
</bean>
myApp.configurationFile是我在tomcat通过-DmyApp.configurationFile = ...
启动时传递的系统变量答案 0 :(得分:0)
添加到配置位置持有者修复了我的问题
<property name="searchSystemEnvironment" value="true" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />