子目录(web)上下文无法访问<context:property-placeholder>属性

Boz*_*zho 17 spring spring-mvc

一个典型的用例:我有applicationContext.xmldispatcher-servlet.xml.在父上下文(applicationContext.xml)中,我有:

 <context:property-placeholder location="classpath:application.properties" />
Run Code Online (Sandbox Code Playgroud)

但是,Web上下文无法访问由它加载的属性 - 无论是在xml中还是在使用中@Value.(它们只是没有解析而且表达式(${varName})被设置为值而不是)

我通过添加<context:property-placeholder>to来处理它dispatcher-servlet.xml,但我想知道是否:

  1. 这是预期的行为
  2. 没有更好的方法将属性公开给子上下文.

axt*_*avt 16

是的,这是预期的行为.<context:property-placeholder>创建一个BeanFactoryPostProcessor基于每个上下文应用的.因此,无论如何,您还需要在子上下文中使用后处理器.