Вопрос:

Externalize web.xml params в приложении Spring

java spring

322 просмотра

1 ответ

427 Репутация автора

У меня есть несколько параметров в файле web.xml для внешнего использования. Заявка на весну 4.0. Есть ли весенний способ сделать это?

Точнее, если я определю PropertyPlaceholderConfigurer в файле контекста, есть ли способ использовать его для извлечения свойств в web.xml?

Вот что я попробовал:

В applicationContext.xml:

<bean
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property
            name="location"
            value="classpath:/test.properties" />
        <property
            name="ignoreUnresolvablePlaceholders"
            value="true" />
    </bean>

Затем в web.xml:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/applicationContext.xml
        </param-value>
    </context-param>

Но приведенный ниже код возвращает значение параметра в виде $ {app.url}

<init-param>
            <param-name>appUrl</param-name>
            <param-value>${app.url}</param-value>
        </init-param>
Автор: Ani Источник Размещён: 22.08.2016 09:33

Ответы (1)


0 плюса

427 Репутация автора

Решение

Это невозможно, так как web.xml будет загружен до инициализации контекста. Единственное решение для этого - переместить эти свойства в файлы свойств, специфичные для сервера приложений.

Я использую Tomcat и переместил это свойство в catalina.properties. Теперь это работает.

Автор: Ani Размещён: 25.08.2016 02:54
Вопросы из категории :
32x32