java - spring中注入(inject)抽象类的问题

标签 java spring dependency-injection ioc-container

我有两个抽象类

class abstract A {
//some methods .
}

class abstract B extends A {
 private  C  c ;
//other methods
}

Spring 配置文件:

<bean id="b" class="B" abstract="true">
    <property name="c" ref="C" />   //I have reference for C else where
</bean>

当我运行程序时,类 c 没有被注入(inject)。它将以 null 形式出现。我错过了什么吗?

最佳答案

abstract=true 表示该 bean 规范是其他 bean 声明扩展的"template",并不意味着该类是抽象的。我怀疑 id b 的 bean 没有被创建,因为它是一个模板/抽象定义。删除 abstract=true 并使 B 成为具体类型,它应该可以工作。

此处的文档:http://static.springsource.org/spring/docs/3.0.x/reference/beans.html#beans-child-bean-definitions

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

相关文章:

c# - 在 ASP.NET Core 3.0 Preview 5 或更高版本中配置 AutoFac

c# - 在 autofac 中可视化依赖树深度

java - 扩展抽象类的奇怪行为(练习)

java - 在 Java 中使用 Swing 显示图像

Java Serialized - 序列化/反序列化是否安全?

java - 如何使用 Jersey 1 进行 ChunkOutput?

java - 为什么我无法使用 Spring Boot 在 Spring 上下文中获取可用的 Bean 定义?

java - Spring Batch : How to pass data from StepExecution to JobExecution without persisting it (that is, 不使用 ExecutionContext)?

java - aop :aspectj-autoproxy and tx:annotation-driven conflict in spring

javascript - 异步加载 qUnit