bob*_*bob 27 spring dependency-injection
我需要使用spring框架在依赖的抽象超类中注入依赖项.
class A extends AbstractClassB{
private Xdao daox ;
...
public setXdao() { ... }
}
class AbstractClassB{
..
private yDao daoy;
public seyYdao() { ... }
}
Run Code Online (Sandbox Code Playgroud)
每次我实例化抽象类B时都需要传递超类依赖项(在我的项目中可以用100种方式进行子类化)
application.xml中的条目(spring上下文文件)
<bean id="aClass" class="com.mypro.A"
<property name="daox" ref="SomeXDaoClassRef" />
<property name="daoy" ref="SomeYDaoClassRef"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
我怎样才能在application.xml中创建超类AbstractClassB的bean引用,以便我可以在所有子类bean创建中使用它?
ska*_*man 37
您可以创建一个抽象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>
Run Code Online (Sandbox Code Playgroud)
严格来说,定义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>
Run Code Online (Sandbox Code Playgroud)
但是,为了清楚起见,并为您的工具提供更好的帮助您的机会,通常最好留下它.
Spring Manual的3.7节讨论了bean定义继承.
| 归档时间: |
|
| 查看次数: |
34949 次 |
| 最近记录: |