Свойства <context: property-placeholder> недоступны для дочернего (веб) контекста - PullRequest
17 голосов
/ 29 сентября 2010

Типичный вариант использования: у меня applicationContext.xml и dispatcher-servlet.xml.В родительском контексте (applicationContext.xml) у меня есть:

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

Однако загруженные им свойства не доступны для веб-контекста - ни в xml, ни при использовании @Value.(Они просто не разрешены, и вместо этого в качестве значения установлено выражение (${varName}))

Я обошел его, добавив также <context:property-placeholder> к dispatcher-servlet.xml, но мне было интересно:*

  1. Это ожидаемое поведение
  2. Нет лучшего способа предоставить свойства дочернему контексту.

1 Ответ

16 голосов
/ 29 сентября 2010

Да, это ожидаемое поведение.<context:property-placeholder> создает BeanFactoryPostProcessor, который применяется для каждого контекста.Итак, вам все равно понадобится постпроцессор в дочернем контексте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...