Подтвердить что ты не робот

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

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

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

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

Я работал над этим, добавив <context:property-placeholder> в dispatcher-servlet.xml, но я задался вопросом:

  • Ожидаемое поведение
  • Существует не лучший способ подвергнуть свойства дочернему контексту.
4b9b3361

Ответ 1

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