说我有两个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属性是不可变的,需要构造函数注入” –
对不起,我错过了) –
不用担心:)在快车道上驾驶! –