Как прочитать системную переменную среды в Spring applicationContext - PullRequest
104 голосов
/ 19 октября 2010

Как прочитать системную переменную среды в контексте приложения?

Я хочу что-то вроде:

<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 устанавливается на основе переменной среды SYSTEM ENVIRONMENT

Я использую Spring 3.0

Ответы [ 11 ]

0 голосов
/ 28 марта 2016

Благодаря @Yiling.Это была подсказка.

<bean id="propertyConfigurer"
        class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">

    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
    <property name="searchSystemEnvironment" value="true" />
    <property name="locations">
        <list>
            <value>file:#{systemEnvironment['FILE_PATH']}/first.properties</value>
            <value>file:#{systemEnvironment['FILE_PATH']}/second.properties</value>
            <value>file:#{systemEnvironment['FILE_PATH']}/third.properties</value>
        </list>
    </property>
</bean>

После этого у вас должна быть одна переменная среды с именем 'FILE_PATH'.Обязательно перезапустите свой терминал / IDE после создания этой переменной среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...