Spring Framework ,Spring 框架, 是一个开源框架,拥有活跃庞大的社区。
Spring一句话概括:Spring 是包含众多工具方法的 IoC 容器。
IoC =>> Inversion of Control =>> 控制反转
Spring 是一个 ”控制反转“ 的容器。
控制反转指的是控制权的反转,将 对象的生命周期的控制权 反转。
对象的生命周期,不由程序员(当前代码)来控制,而是由 Ioc 容器来控制。
作用:解耦合
有一个场景,需要实例化一个对象 A。但是构造 A 需要调用 B,构造 B 需要调用 C,构造 C 需要调用 D。
传统开发
A 需要 B,在 A 中 new B,B 需要 C,在 B 中 new C,C 需要 D,在 C 中 new D,
**当需求改变:**D 的构造方法需要传一个参数时,A、B、C 都要去改, 从 new A 开始,将参数一层一层传到 D。
IoC 思想
在执行之前,先创建要使用的对象。
从外部统一 new A、B、C、D。(IoC 帮我们完成了)
A 中要用 B,就给 A 提供 B,B 中要用 C,就给 B 提供 C,C 中要用 D,就提供 D
当D的构造方法需要传一个参数时,只需要修改外部 new D 即可(解耦合)
Spinrg 是一个 IoC 容器,容器最基础的功能是:存入对象、取出对象。
对象的创建和销毁权利(对象生命周期的控制权)都交给 Spring 来管理,Spring 具备存储对象和获取对象的能力。
什么是DI:
DI => Dependency injection => 依赖注入
程序在运行期间,动态的将依赖注入到某个对象中,就是从 IoC 中取出对象,给需要使用的对象提供。
IoC 与 DI 的关系:
IoC 是对象生命周期控制权的反转,IoC 容器来管理对象的生命周期(创建和销毁)
DI 依赖注入,从 IoC 容器中,获取需要使用的对象(依赖),注入到某个对象中。
IoC 是一个设计思想,对象交给容器管理。
DI 是一个具体的实现,将依赖动态注入的功能。