J'ai la situation suivante.Injecter la propriété du haricot à partir du haricot externe
j'ai deux haricots, par exemple:
<bean id="service1" parent="txProxyTemplate">
<property name="target">
<bean autowire="byName" class="Class1"/>
</property>
</bean>
<bean name="manager1" parent="txProxyServiceTemplate">
<property name="target">
<bean autowire="byName" class="ManagerClass1"/
</property>
</bean>
Et j'ai troisième haricot qui est vraiment injecté dans ces deux Baens:
<bean name="supportBean" parent="txProxyServiceTemplate">
<property name="target">
<bean autowire="byName" class="SupportBeanClass">
</bean>
</property>
</bean>
Il est le champ « path » de chaîne dans les haricots service1 (chemin = "premier chemin") et manager1 (chemin = "second chemin"). Lorsque supportBean est injecté dans service1 et manager1, je souhaite qu'un champ chaîne dans supportBean (par exemple "actualPath") soit automatiquement initialisé à partir de deux beans englobants. Comment pourrais-je faire cela au printemps?
PS: je dois que service1 et manager1 ont supportBean avec deux champs distincts (en classe service1 supportBean a actualPath = "premier chemin", en classe manager1 supportBean a actualPath = « deuxième chemin)
J'espère que vous avez compris moi, Merci!
C'est une variante assez sympa, merci :) Mais comment puis-je éviter le réglage "chemin" à travers setter? Est-ce que je peux faire ceci d'une manière ou d'une autre par le constructeur? – Dedyshka
@Dedyshka - Vous pouvez utiliser l'injection de constructeur pour autowire le service. Si vous voulez dire s'il est possible de définir le chemin réel sur le 'SupportBean' via son constructeur - ce serait plus difficile car Spring a déjà créé le' SupportBean' au moment où il autowires les services. Vous pourriez être en mesure de créer un 'SupportBeanFactory' ou similaire et autowire à la place. L'usine pourrait alors créer le 'SupportBean' fournissant le chemin pertinent au constructeur' SupportBean'. Cela dépendrait vraiment de ce que vous essayez d'accomplir. –