Ajouter des propriétés à la propriété de l'espace réservé

J'ai une application dans laquelle une propriété de l'espace réservé est utilisé pour lire les propriétés, configuré en applicationContext.xml:

...
<context:property-placeholder
     location="classpath*:META-INF/spring/*.properties"/> 
...

L'application s'exécute dans un Tomcat et utilise le paramètre défini dans context.xml.
L'accès de l'application de ce paramètre comme d'habitude les propriétés (@Value(${cfma.applicationUrl})). Cela fonctionne

Dans mon cas de test je n'ai pas cette tomcat propriétés, donc je veux ajouter "à la main" pour le contexte de l'application. Mais aussi de la charge normale applicationContext.xml

testContext.xml:

<import resource="classpath:/META-INF/spring/applicationContext.xml" />
<context:property-placeholder properties-ref="simulatedTomcatProperties"/>
<util:properties id="simulatedTomcatProperties">
   <prop key="cfmt.applicationBaseUrl">localhost:8080/cfmt</prop>
</util:properties>

Maintenant, j'ai deux contexte:propriété de l'espace réservé et cela ne fonctionne pas (bien sûr) – Donc ma question est, qui puis-je m'étendre les propriétés dans la “normale” de la propriété de l'espace réservé dans mon test?


Plus d'Explication de ce dont j'ai besoin:

  • L'environnement productif (ainsi que le développement de l'environnement) définit certaines propriétés via Tomcat paramètre. Par conséquent, ils ne sont pas inclus dans les propriétés du fichier, mais nerveless ils peuvent être consultés comme d'habitude les propriétés (@Value(${cfma.applicationUrl})). En outre, il ne doit pas y avoir recours, si les propriétés ne sont pas définis dans le Tomcat, l'application ne doit pas commencer!
  • Dans le cas de test (qui utilisent le printemps contexte), je dois certaines comment insérer la propriété (cfma.applicationUrl), de sorte qu'il peut être injecté dans le annoté variables.
    Mais si j'ajoute un deuxième context:property-placeholder ils ne sont pas fusionnées:

@Voir les Commentaires sur le https://jira.springsource.org/browse/SPR-4881 - ils expliquer ce comportement.


Quand je parle de Tomcat paramètre je parle somethink comme ceci:

context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Parameter name="cfmt.applicationBaseUrl"
          value="http://localhost/demoApp" override="false"/>
</Context>
  • Voir stackoverflow.com/questions/6375016/... Elle vous permet de définir plusieurs propriétés endroits. Propriétés manquantes fichiers sont ignorés, et le dernier valide fichier ci est chargé.
  • Ma question n'est pas à propos de l'emplacement de multiples. Je s'accrochent avec les propriétés d'un espace réservé à configurer. Et je suis à la recherche d'un moyen de prolonger l'/modifier la configuration de la "normale" app contexte de la propriété de l'espace réservé configurer à partir de mon test-context.xml
  • Désolé. Mon commentaire n'était pas très clair, je n'étais pas suggérer une manière de spécifier plusieurs fichiers de propriétés, mais une façon de faire du conditionnel propriétés des recherches. Une élargi réponse est ci-dessous.
InformationsquelleAutor Ralph | 2011-06-17