<context:property-placeholder> properties not accessible to the child (web) context
A typical use-case: I'm having app开发者_开发技巧licationContext.xml
and dispatcher-servlet.xml
. In the parent context (applicationContext.xml
) I have:
<context:property-placeholder location="classpath:application.properties" />
However, the properties loaded by it are not accessible to the web context - neither in xml, nor using @Value
. (They are just not resolved and the expression (${varName}
) is set as value instead)
I worked it around by adding the <context:property-placeholder>
to dispatcher-servlet.xml
as well, but I wondered whether:
- This is expected behaviour
- There isn't a better way to expose the properties to the child context.
Yes, this is an expected behaviour. <context:property-placeholder>
creates a BeanFactoryPostProcessor
which is applied at per-context basis. So, you'll need a postprocessor in the child context anyway.
精彩评论