0%

Spring IoC

什么是 IoC

  • 控制反转,是一种思想,不是一种实现。Java 领域中描述的是对象的创建和管理的问题。
  • 传统开发,A 中要使用 B 的对象,需要在 A 中 new 出 B 的对象
  • IoC 思想实现:不通过 new 关键字来创建对象,而是通过 IoC 容器( Spring 框架) 来帮助我们实例化对象。我们需要哪个对象,直接从 IoC 容器里面获取即可。
  • 控制 :指的是对象创建(实例化、管理)的权力
  • 反转 :控制权交给外部环境(Spring 框架、IoC 容器)
  • IoC 容器实际上就是个 Map(key,value),Map 中存放的是各种对象。

IoC 解决了什么问题

IoC 的思想就是两方之间不互相依赖,由第三方容器来管理相关资源。这样有什么好处呢?

  • 对象之间的耦合度或者说依赖程度降低;
  • 资源变的容易管理;比如你用 Spring 容器提供的话很容易就可以实现一个单例。

DI(依赖注入)Dependency Injection

是Ioc的一种实现方式,3种方式

  • 构造器注入
    • 有参构造
  • setter方法注入
  • 接口注入

Spring IOC的初始化过程:

img

  1. 首先初始化上下文,生成 ClassPathXmlApplicationContext 对象
  2. 再获取 resourcePatternResolver 对象将 xml 解析成 Resource 对象。
  3. 利用1生成的 contextresource 初始化工厂,并将 resource 解析成 beandefinition
  4. 再将 beandefinition 注册到 beanfactory 中。

----------- 本文结束啦感谢您阅读 -----------