【发布时间】:2013-09-30 12:52:07
【问题描述】:
我需要一些关于下一个主题的帮助。
我有一个 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。然后在运行时,我将需要能够初始化类型“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 定义上的
abstract与抽象类有 NO 关系。如果您需要另一种实例化方法,请定义包含此逻辑的FactoryBean,或使用包含引用 bean 的属性文件并使用PropertyPlaceHolder在运行时替换它。
标签: java spring spring-mvc spring-3