抽象父类@Autowired注入bean

来源:9-1 表属性设置为 NULL,你可能要面临很多麻烦

奶茶三兄弟d

2020-11-19

老师,问一个基础。。。。的问题,就是定义了一个抽象类,然后我@Autowired一些bean,通过属性注入的方式,

并且标记成private,为啥能注入进去,本身抽象类也不是bean啊,为啥能将bean注入进去呢,

这样的话,子类再调用的时候,还能够正常使用,这是为什么,麻烦老师说一下原理,谢谢老师!

如图所示

抽象类
图片描述

子类
![图片描述
图片描述

写回答

1回答

张勤一

2020-11-19

三兄弟你好:

    其实,这个就是 Spring 的 IOC 的应用呀,没有高级的特性和语法呀。我给你解释一下你的疑问:

    (1)private field 使用 @Autowired 当然是可以正常完成依赖注入的,这就是 Field 注入

    (2)抽象类不是 Bean,但是,你的子类 extends 抽象类,且你的子类是 Bean(你可以看到,子类标注了 @Service),当然就可以完成注入了

    所以,这就是 IOC 思想和原理的日常应用,不要想得过于复杂。


    我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!

2
1
奶茶三兄弟d
非常感谢!
2020-11-19
共1条回复

Java实操避坑指南 SpringBoot/MySQL/Redis错误详解

掌握业务开发中各种类型的坑,,Java web开发领域通用

466 学习 · 204 问题

查看课程