2010-09-28 9 views
17

Typowy przypadek użycia: Mam applicationContext.xml i dispatcher-servlet.xml. W kontekście dominującej (applicationContext.xml) mam:<kontekst: właściwość-obiekt zastępczy> właściwości niedostępne dla kontekstu podrzędnego (WWW)

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

Jednak właściwości załadowane przez nią nie są dostępne w ramach internetowej - ani w xml, ani za pomocą @Value. (Są po prostu nie został rozwiązany, a wyrażenie (${varName}) jest ustawiony jako wartość zamiast)

Pracowałem wokół poprzez dodanie <context:property-placeholder> do dispatcher-servlet.xml jak dobrze, ale zastanawiałem się, czy:

  1. Jest to oczekiwane zachowanie
  2. Nie ma lepszego sposobu na odsłonięcie właściwości kontekstu podrzędnego.

Odpowiedz

16

Tak, to oczekiwane zachowanie. <context:property-placeholder> tworzy BeanFactoryPostProcessor, który jest stosowany dla każdego kontekstu. Tak więc będziesz potrzebował postprocesora w kontekście potomnym.

Powiązane problemy