J'ai deux fichiers xml définissant les haricots pour la springframework (version 2.5.x):Comment modifier les haricots définis dans un récipient à ressort
containerBase.xml:
<beans>
<bean id="codebase" class="com.example.CodeBase">
<property name="sourceCodeLocations">
<list>
<value>src/handmade/productive</value>
</list>
</property>
</bean>
</beans>
... et
containerSpecial.xml:
<beans>
<import resource="containerBase.xml" />
</beans>
maintenant Je veux régler la propriété sourceCodeLocations
de haricot codebase
au sein de containerSpecial.xml
. Je dois ajouter une deuxième valeur src/generated/productive
.
Une approche simple est de passer outre la définition de codebase
dans containerSpecial.xml
et ajoutez les deux valeurs, celle de containerBase.xml
et le nouveau:
containerSpecial.xml:
<beans>
<import resource="containerBase.xml" />
<bean id="codebase" class="com.example.CodeBase">
<property name="sourceCodeLocations">
<list>
<value>src/handmade/productive</value>
<value>src/generated/productive</value>
</list>
</property>
</bean>
</beans>
Est-il possible d'étendre la liste sans redéfinir le haricot?
EDIT 2009-10-06:
Le but est d'avoir un conteneur standard partagé containerBase
qui est utilisé par un grand nombre de projets différents. Chaque projet peut remplacer/étendre certaines propriétés spéciales pour ce projet dans son propre containerSpecial
. Si le projet ne remplace pas, il utilise les valeurs par défaut définies dans containerBase
.
CodebaseOverrider n'est pas tout à fait ce que je cherche, mais avec cette approche, je pourrais facilement écrire un CodebaseListExtender. Je vais l'essayer. – tangens