gpt4 book ai didi

spring - 在抽象父类(super class)中注入(inject)spring依赖

转载 作者:IT老高 更新时间:2023-10-28 13:46:24 30 4
gpt4 key购买 nike

我需要使用 Spring 框架在抽象父类(super class)中注入(inject)依赖项。

class A extends AbstractClassB{ 
private Xdao daox ;
...
public setXdao() { ... }
}

class AbstractClassB{
..
private yDao daoy;
public seyYdao() { ... }
}

每次实例化抽象类 B 时,我都需要传递父类(super class)依赖项(在我的项目中可以以 100 种方式对其进行子类化)

application.xml 中的条目(spring 上下文文件)

<bean id="aClass" class="com.mypro.A" 
<property name="daox" ref="SomeXDaoClassRef" />
<property name="daoy" ref="SomeYDaoClassRef"/>
</bean>

如何在 application.xml 中创建父类(super class) 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>

但是,为了清楚起见并让您的工具有更好的机会帮助您,通常最好将其保留。

Section 3.7 of the Spring Manual讨论 bean 定义继承。

关于spring - 在抽象父类(super class)中注入(inject)spring依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4238987/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com