我有以下情況。從外部bean注入bean屬性
我有兩個豆類,例如:
<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>
,我有三豆這是真正注入到這兩個baens:
<bean name="supportBean" parent="txProxyServiceTemplate">
<property name="target">
<bean autowire="byName" class="SupportBeanClass">
</bean>
</property>
</bean>
有豆類服務1串「路徑」欄(path =「第一路徑」)和manager1(path =「第二路徑」)。 當supportBean被注入到service1和manager1時,我希望supportBean中的某些字符串字段(例如「actualPath」)是從兩個封閉的bean自動啓動的。春天我怎麼能做到這一點?
PS:我需要的服務1和manager1具有supportBean有兩個不同的字段(Service1類supportBean有actualPath = 「第一路」,在manager1類supportBean有actualPath =「第二條路徑)
我希望你明白我,謝謝!
這是相當不錯的變體,謝謝:) 但我怎麼能避免通過setter設置「路徑」?我能通過構造函數以某種方式做到這一點嗎? – Dedyshka
@Dedyshka - 您可以使用構造函數注入來自動裝載服務。如果你的意思是可以通過它的構造函數在'SupportBean'上設置實際的路徑 - 這將更加困難,因爲Spring已經在自動裝載服務的時候創建了SupportBean。您也許可以創建一個'SupportBeanFactory'或類似的自動裝配。然後,工廠可以創建'SupportBean',將相關路徑提供給'SupportBean'的構造函數。這將取決於你想要達到的目標。 –