¿Es posible utilizar los archivos .properties en web.xml junto con el parámetro contextConfigLocation?

StackOverflow https://stackoverflow.com/questions/2515954

  •  22-09-2019
  •  | 
  •  

Pregunta

Aquí es parte de mi web.xml:

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

-config.xml aplicación utiliza la propiedad de marcador de posición:

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

¿Es posible de alguna manera a definir qué archivo de propiedades para su uso en web.xml en lugar de en la solicitud-config.xml?

¿Fue útil?

Solución

Sí, puede utilizar ServletContextParameterFactoryBean para exponer valor context-param (que también requiere de forma completa en lugar de PropertyPlaceholderConfigurer context:property-placeholder sencilla):

<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>

o usar un muelle de 3.0 EL:

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

Otros consejos

Totalmente de acuerdo con axtavt. Así que toda la información se combina la solución más sencilla con Spring 3.0 por tanto, es:

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

con

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

en web.xml.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top