springIOC的核心原理

  • Post author:
  • Post category:其他




一 什么是IOC:

1 何为依赖?在类A(或者说对象a)中,用到了类B(或者说对象b)中的属性/方法,可以称A依赖于B

2 在没有用springIOC之前,若在A中用到B中的属性/方法,我们是通过new B()来创建一个B对象功A调用的。而IOC的出现,使得我们不需要去手动

代码去new这些对象了,而是spring的IOC容器会帮我们实现。

3 IOC(Inversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创

建、依赖的代码,反转给容器来帮忙实现.既然是交给了容器来实现,那么必然的我们需要创建一个容器,同时需要一种描述来让

容器知道需要创建的对象与对象的关系。。这个描述最具体表现就是我们所看到的配置文件。

4 DI(Dependency Injection)依赖注入:就是指对象是被动接受依赖类而不是自己主动去找,换句话说就

是指对象不是从容器中查找它依赖的类,而是在容器实例化对象的时候主动将它依赖的类注入给它。

5 对象和对象的关系,可以用xml,properties 文件等语义化配置文件表示。那描述对象关系的文件存放在可能是classpath,filesystem,或者是URL 网络资源,

servletContext 等。

以下看起来可能有点晕车,要是结合源码看会清晰些。以下可供作为整理思路



二 以上提到依赖对象的创建和注入,都是在容器中实现的,那spring是如何创建这个容器的?

spring IOC容器初始化三部

定位(定位配置文件和扫描相关注解)- 加载(将配置信息载入到内存中)- 注册(根据载入的信息将对象初始化到IOC容器中):

在这里插入图片描述



三springIOC运行时序图

在这里插入图片描述



版权声明:本文为P502520原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。