我对春天的豆子有疑问。
有父类Parent,带有构造函数(没有任何setter)。
class abstract Parent{
procected Something someth;
public Parent(Object1 obj1 , Object2 obj2 , Object3 obj3){
someth.setObj1(obj1);
someth.setObj2(obj2);
someth.setObj3(obj3);
}
}
class Child extends Parent implements SoneInterface{
public Parent(Object1 obj1 , Object2 obj2 , Object3 obj3){
supper(obj1,obj2,obj3);
}
public void methodFormSoneInterface(){
....................
someth.do();
}
}
Object1 obj1 - 它与任何子实例的对象相同。 Object2 obj2,Object3 obj3-对于任何实例都可以是双向的
如果我有父母的设定者(我无法改变它),我可以声明抽象bean,为它设置Object1 obj1,然后我可以将它用作抽象bean(仅设置obj2和obj3参考/值)。
是否有机会使用obj1 param在xml父/抽象bean中配置,为子项定义任何正确的值(仅设置obj2和obj3)?
由于
答案 0 :(得分:0)
可以部分构造一个抽象bean。你可能想试试这个。
<bean id="parentBean" abstract="true">
<property name="obj1" ref="obj1Ref" />
</bean>
<bean id="childBean" parent="parentBean" class="com.childClass">
<property name="obj2" ref="obj2Ref" />
<property name="obj3" ref="obj3Ref" />
</bean>
答案 1 :(得分:0)
它应该像这样工作,其中构造函数中的第一个参数是您希望它在父级别设置的那个,而另外两个可以在子级别设置:
<bean id="parent" class="com.foo.bar.Parent" abstract="true">
<constructor-arg index="0" value="123" />
</bean>
<bean id="child1" class="com.foo.bar.Child" parent="parent">
<constructor-arg index="1" value="234" />
<constructor-arg index="2" value="456" />
</bean>
<bean id="child2" class="com.foo.bar.Child" parent="parent">
<constructor-arg index="1" value="aaa" />
<constructor-arg index="2" value="bbb" />
</bean>