Spring属性文件中的环境变量

时间:2017-10-10 20:30:38

标签: spring properties environment-variables

我正在尝试在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 = ...

启动时传递的系统变量

1 个答案:

答案 0 :(得分:0)

添加到配置位置持有者修复了我的问题

<property name="searchSystemEnvironment" value="true" />
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />