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

回到顶部