一、IOC概要

IOC概要
IOC ,就是由 Spring IOC 容器来负责对象的生命周期和对象之间的关系.

控制反转,是一种设计思想,依赖注入DI是一种具体实现。IOC意味着将设计好的对象交给容器控制,由容器帮我们查找及注入依赖对象(所以对象和对象之间是松散耦合的),对象只是被动的接受依赖对象,即为反转。

在传统的开发模式下,我们都是采用直接 new 一个对象的方式来创建对象,也就是说依赖的对象直接由我们自己控制,但是有了 IoC 容器后,则直接由 IoC 容器来控制。

没有 IoC 的时候我们都是在自己对象中主动去创建被依赖的对象,这是正转。但是有了 IoC 后,所依赖的对象直接由 IoC 容器创建后注入到被注入的对象中,依赖的对象由原来的主动获取变成被动接受,所以是反转。

IOC注入方式

  1. 构造器注入
  2. setter注入
  3. 接口注入

重要组件

主要有五个体系:ResourceBeanFactoryBeanDefinitionBeanDefinitionReaderApplicationContext

Resource

对资源的抽象,它的每一个实现类都代表了一种资源的访问策略。

Resource

有了资源,就应该有资源加载,ResourceLoader就是进行统一资源加载。

ResourceLoader

BeanFactory

是bean容器,BeanDefinition 是它的基本结构,它内部维护着一个 BeanDefinition map ,并可根据 BeanDefinition 的描述进行 bean 的创建和管理。

BeanFactory

BeanFacoty 有三个直接子类 ListableBeanFactoryHierarchicalBeanFactoryAutowireCapableBeanFactoryDefaultListableBeanFactory 为最终默认实现,它实现了所有接口。

BeanDefinition

用来描述Spring中Bean对象。

BeanDefinition

BeanDefinitionReader

读取Spring配置文件内容,并将其转换成IOC容器内部的BeanDefinition

BeanDefinitionReader

ApplicationContext

Spring容器,也叫应用上下文,继承自BeanFactory,二者主要区别:

  1. 继承 MessageSource,提供国际化的标准访问策略。
  2. 继承 ApplicationEventPublisher ,提供强大的事件机制。
  3. 扩展 ResourceLoader,可以用来加载多个 Resource,可以灵活访问不同的资源。
  4. 对 Web 应用的支持。

一、IOC概要
http://www.muzili.ren/2022/06/11/IOC理论/
作者
jievhaha
发布于
2022年6月11日
许可协议