Spring抛出错误:Bean定义是抽象的
我需要有关下一个主题的帮助。
我有一个豆的层次结构,就像这样:
<bean id="father" class="myPackage.Father" abstract="true"/><bean id="childA" class="myPackage.ChildA" parent="father">
<property name="atrib1" value="hello"></property>
</bean>
<bean id="childB" class="myPackage.ChildB" parent="father">
<property name="atrib2" value="bye"></property>
<property name="atrib3" value="other"></property>
</bean>
我需要创建另一个包含对抽象类的引用的bean。然后,在运行时,我将需要能够初始化TYPE“
myPackage.Father”类型的变量,并使用任何子类(多态机制)实例化该变量。我的意思是这样的:
<bean id="reference" class="myPackage.Another"> <property name="atrib4" ref="father"></property>
</bean>
请注意,引用(myPackage.Another的实例)不是myPackage.Father的子类。但是在这些行中,Spring引发了下一个错误:
Bean definition is abstract
我该如何处理?
感谢您的帮助,在此先感谢!
回答:
首先,抽象bean与抽象类无关,它们甚至不需要映射到一个类,它们被用来对另一个bean共享的公共属性进行分组,但是您不能将抽象bean用作ref将属性连接到另一个bean。如果您的bean
myPackage.Another具有类型为myPackage.Father的引用,并且您的子bean可分配(实现的扩展)到myPackage.Father,则可以在myPackage中连接childA或childB。
<bean id="reference" class="myPackage.Another"> <property name="atrib4" ref="childA"></property>
</bean>
以上是 Spring抛出错误:Bean定义是抽象的 的全部内容, 来源链接: utcz.com/qa/397376.html