Можно ли использовать файлы .properties в web.xml вместе с параметром contextConfigLocation? - PullRequest
3 голосов
/ 25 марта 2010

Вот часть моего web.xml:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:application-config.xml
        </param-value>
</context-param>

application-config.xml использует заполнитель свойства:

<context:property-placeholder location="classpath:properties/db.properties"/>

Можно ли как-то определить, какой файл свойств использовать в web.xml, а не в application-config.xml?

Ответы [ 2 ]

4 голосов
/ 26 марта 2010

Полностью согласен с axtavt. Таким образом, вся информация в сочетании с наиболее простым решением Spring 3.0 выглядит так:

<context:property-placeholder location="#{contextParameters.propertiesLocation}"/>

с

<context-param>
   <param-name>propertiesLocation</param-name>
   <param-value>classpath:properties/db.properties</param-value>
</context-param>

в web.xml.

4 голосов
/ 25 марта 2010

Да, вы можете использовать ServletContextParameterFactoryBean, чтобы выставить context-param значение (также требуется полная форма PropertyPlaceholderConfigurer вместо простого context:property-placeholder):

<bean id = "myLocation" class = 
    "org.springframework.web.context.support.ServletContextParameterFactoryBean">
    <property name="initParamName" value = "myParameter" />
</bean>

<bean class = 
    "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" ref = "myLocation" />
</bean>

Или используйте EL 3.0 в Spring:

<bean class = 
    "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value = "#{contextParameters.myParameter}" />
</bean>
...