說我有兩個Bean(其中BeanA
屬性是不可改變的,需要構造函數注入):重寫構造函數的參數
<bean id="beanA1" class="BeanA">
<constructor-arg type="ServiceA" ref="serviceA" />
<constructor-arg type="ServiceB" ref="serviceB" />
<constructor-arg type="ServiceC" ref="serviceC" />
<constructor-arg type="boolean" value="false" />
</bean>
<bean id="beanA2" class="BeanA">
<constructor-arg type="ServiceA" ref="serviceA" />
<constructor-arg type="ServiceB" ref="serviceB" />
<constructor-arg type="ServiceC" ref="serviceC" />
<constructor-arg type="boolean" value="true" />
</bean>
由於他們分享一切,但布爾,我想將它們合併爲這樣:
<bean id="beanA1" class="BeanA">
<constructor-arg type="ServiceA" ref="serviceA" />
<constructor-arg type="ServiceB" ref="serviceB" />
<constructor-arg type="ServiceC" ref="serviceC" />
<constructor-arg type="boolean" value="false" />
</bean>
<bean id="beanA2" parent="beanA1">
<constructor-arg type="boolean" value="true" />
</bean>
然而,這似乎並不奏效
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'beanA2' defined in class path resource [context.xml]: Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)
任何方式與構造函數注入做到這一點?
感謝Vitalii - 這實際上是清楚爲什麼我需要從第一句構造函數注入:)「其中BeanA屬性是不可變的,需要構造函數注入」 –
對不起,我錯過了) –
不用擔心:)在快車道上駕駛! –