子级(Web)上下文无法访问的属性
问题内容:
一个典型的用例:我有applicationContext.xml
and dispatcher- servlet.xml
。在父上下文(applicationContext.xml
)中,我有:
<context:property-placeholder location="classpath:application.properties" />
但是,Web上下文无法访问由它加载的属性-
既不能在xml中使用,也不能使用@Value
。(它们只是无法解析,${varName}
而是将表达式()设置为值)
我也通过添加<context:property-placeholder>
来解决此问题dispatcher-servlet.xml
,但我想知道是否:
- 这是预期的行为
- 没有更好的方法将属性公开给子上下文。
问题答案:
是的,这是预期的行为。<context:property- placeholder>
创建一个BeanFactoryPostProcessor
基于上下文应用的。因此,无论如何,您将需要在子上下文中使用后处理器。