我有一个 bean,我正在尝试使用构造函数注入在 Spring 上下文中进行配置。当我为构造函数参数之一传递子类时,只有当我没有指定“类型”属性时,才会由 Spring 容器实例化 bean。有人知道出了什么问题吗?以下是更多细节。
class MyClass{
public MyClass(SomeAbstractBase absObject){
//do stuff
}
}
class ConcreteClass extends SomeAbstractBase{
//
}
Spring 配置(第一个和第二个不起作用,但使用 type 属性的第三个起作用)- 配置 I-
<bean id="concreteclass"
class="ConcreteClass"/>
<bean id="myclass"
class="MyClass">
<constructor-arg type="ConcreteClass" ref="concreteclass"/>
</bean>
配置二-
<bean id="concreteclass"
class="ConcreteClass"/>
<bean id="myclass"
class="MyClass">
<constructor-arg type="SomeAbstractBase" ref="concreteclass"/>
</bean>
配置 III-
<bean id="concreteclass"
class="ConcreteClass"/>
<bean id="myclass"
class="MyClass">
<constructor-arg ref="concreteclass"/>
</bean>
我在初始化时收到以下异常-
线程“main” org.springframework.beans.factory.BeanCreationException 中的异常:在类路径资源 [cache-spring-config.xml] 中定义名称为“jedispool”的 bean 创建错误:无法解析匹配的构造函数(提示:指定索引/简单参数的类型/名称参数以避免类型歧义)
为什么第一个或第二个配置都不起作用?
谢谢