我需要使用spring框架在抽象超类中注入依赖项。
class A extends AbstractClassB{ private Xdao daox ; ... public setXdao() { ... } } class AbstractClassB{ .. private yDao daoy; public seyYdao() { ... } }
我每次实例化Abstract class B时都需要传递超类依赖关系(可以在我的项目中以100多种方式将其子类化)
application.xml(Spring上下文文件)中的条目
<bean id="aClass" class="com.mypro.A" <property name="daox" ref="SomeXDaoClassRef" /> <property name="daoy" ref="SomeYDaoClassRef"/> </bean>
我如何才能在application.xml中创建超类AbstractClassB的bean引用,以便可以在所有子类bean创建中使用它?
你可以创建一个抽象bean定义,然后“定义”该定义的子类型,例如
<bean id="b" abstract="true" class="com.mypro.AbstractClassB"> <property name="daox" ref="SomeXDaoClassRef" /> </bean> <bean id="a" parent="b" class="com.mypro.A"> <property name="daoy" ref="SomeYDaoClassRef" /> </bean>
严格来说,的定义b甚至不需要你指定类,可以将其省略:
<bean id="b" abstract="true"> <property name="daox" ref="SomeXDaoClassRef" /> </bean> <bean id="a" parent="b" class="com.mypro.A"> <property name="daoy" ref="SomeYDaoClassRef" /> </bean>
但是,为了清楚起见,并为你的工具提供更好的帮助你的机会,通常最好将其保留下来。