comment étendre une liste au printemps config
J'ai défini un certains "commun" des valeurs. Comment puis-je prolonger la liste commune par des valeurs supplémentaires pour divers nouveaux haricots?
<util:list id="myCommonList" list-class="java.util.LinkedList">
<bean .../>
<bean .../>
<bean .../>
<bean .../>
</util:list>
<bean id="extension" parent="myCommonList">
<bean ref="additionalValue"/>
</bean>
Sera-ce de remplacer la liste ou de la prolonger?
- Après la lecture de plusieurs solutions, je suis venu avec le suivant: stackoverflow.com/questions/14520536/spring-collection-merge/...
- Voir aussi stackoverflow.com/questions/4656460/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire, mais de ne pas utiliser
<util:list>
, qui est juste une commodité de la syntaxe. Le conteneur fournit une collection "fusion" de la fonction, mais vous devez utiliser le "vieux style"Basé sur skaffman réponse, vous pouvez obtenir de cette façon:
Selon cette JIRA; il n'y a pas de solution triviale pour ce (actuellement, mais j'espère que dans 3.1, il y aura), bien qu'il existe plusieurs solutions; par exemple, cette un.
Aujourd'hui, j'ai eu ce problème aussi. Pour moi la solution a été d'utiliser le SpEL, et tout SpEL n'est pas prise en charge de plusieurs états - créer deux les classes auxiliaires qui ajoute des listes.
Contexte qui pourraient être mis en œuvre comme ceci:
Et des classes:
#{ new x.y.springs.ListsMerger<String>().merge(@list1, @list2) }"
? Cela ne fonctionnera pas si il n'y a aucune utilisation de ListMerger<String> dans les fichiers java, sinon elle ne pourra pas compiler ListMerger mise en œuvre pour la Chaîne.Vous pouvez remplacer ou d'ajouter tout autre bean dans cette liste par la suite de l'extrait de code ci-dessous.
Par exemple: c'est votre bean qui doit être injectée dans le AAA util:liste mentionnée ci-dessous.
Pour ajouter la liste 2 des éléments de liste1 utiliser le printemps suivant config.