初始SpringIOC

85 阅读2分钟

SpringIOC 也是面试的高频考点了。这一篇文章带初识SpringIOC,让你心里有个整体的脉络。

SpringIOC的IOC是什么?

IOC 又叫控制反转,控制反转,就是把创建和管理bean的权利移交给第三方,这个第三方就是容器。IOC的核心是容器,容器管理着bean的生命周期,负责bean的依赖注入。

简单来说,我们在写项目的时候,经常会创建对象,那springIOC就免去了我们创建对象这个步骤,我们只用使用,不用创建,销毁。

那你说说bean是什么?

bean就是Object,无论是控制反转还是依赖注入,他的主体都是Object,bean就是包装过的Object,由第三方包装的。

那你知道SpringIOC 是如何设计容器的吗?

SpringIOC 设计容器是通过ApplicationContext。它的父类是BeanFactory

BeanFactory,是一个低级容器,类似于hashMap,key-value,只有get和put两种方法

ApplicationContext继承多个接口,被称为高级容器,它有两个具体的子类负责读取配置文件

  • ClassPathXmlApplictationnContext:负责读取classPath下的配置文件
  • FileSystemPathApplicationContext:负责读取本地文件,不常用

我们发现ClassPathXMLApplicationContext不是直接继承ApplicationContext,中间有很多其他的继承,每层都是对上一层的补充。

你知道IOC是通过什么方法创建对象的吗?

是通过set()方法。具体的可以实践,把set()方法改个名字,做相同的功能,看IOC是否能成功创建对象

你知道什么是DI吗?

DI就是依赖注入,控制反转就是通过DI实现的。这句话怎么理解呢?

控制反转是一种思想,DI是这个思想的具体实现。

依赖注入:依赖的是程序外部的资源,因为程序运行需要依赖外部资源,给程序内部的对象提供数据、资源。 注入的是外部的资源,配置文件把外部资源注入到内部,容器加载外部的文件,对象,数据注入到内部对象

Spring为什么要用IOC这个思想呢

主要是解耦。把各个对象之间的依赖关系,用配置文件映射起来,交由容器管理。

CLIRIL9IB`P0OZD(V6($D{G.png