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

时间:2010-09-28 20:07:34

标签: spring spring-mvc

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

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

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

我通过将<context:property-placeholder>添加到dispatcher-servlet.xml来解决这个问题,但我想知道是否:

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

1 个答案:

答案 0 :(得分:16)

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