spring - propertysource - <context: property-placeholder> propiedades no accesibles para el contexto secundario(web)
spring environment getproperty (1)
Un caso de uso típico: tengo applicationContext.xml
y dispatcher-servlet.xml
. En el contexto principal ( applicationContext.xml
) tengo:
<context:property-placeholder location="classpath:application.properties" />
Sin embargo, las propiedades cargadas por él no son accesibles para el contexto web, ni en xml, ni usando @Value
. (Simplemente no se resuelven y la expresión ( ${varName}
) se establece como valor en su lugar)
Lo dispatcher-servlet.xml
agregando el <context:property-placeholder>
a dispatcher-servlet.xml
también, pero me pregunté si:
- Este es el comportamiento esperado.
- No hay una mejor manera de exponer las propiedades al contexto secundario.
Sí, este es un comportamiento esperado. <context:property-placeholder>
crea un BeanFactoryPostProcessor
que se aplica en base a cada contexto. Por lo tanto, necesitará un postprocesador en el contexto secundario de todos modos.