2010-09-28 5 views
17

Un cas d'utilisation type: J'ai applicationContext.xml et dispatcher-servlet.xml. Dans le contexte parent (applicationContext.xml) J'ai:<contexte: propriété-espace réservé> propriétés non accessibles au contexte enfant (web)

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

Cependant, les propriétés chargées par elle ne sont pas accessibles au contexte Web - ni en xml, ni à l'aide @Value. (Ils sont tout simplement pas résolus et l'expression (${varName}) est définie comme valeur au lieu)

Je l'ai travaillé autour en ajoutant le <context:property-placeholder> à dispatcher-servlet.xml aussi, mais je me suis demandé si:

  1. Ce comportement est normal
  2. Il n'existe pas de meilleure façon d'exposer les propriétés au contexte enfant.

Répondre

16

Oui, il s'agit d'un comportement attendu. <context:property-placeholder> crée un BeanFactoryPostProcessor qui est appliqué par contexte. Donc, vous aurez besoin d'un postprocesseur dans le contexte enfant de toute façon.

Questions connexes