一、什么是Spring?
通常所说的Spring是指Spring Framework(Spring 框架),是⼀个开源框架。简而言之:Spring 是包含了众多工具方法的 IoC 容器。
二、 IoC容器介绍
IoC = Inversion of Control ☞中文意思是:控制反转
意思就是将权限交给框架而不是类本身
举例:构建一辆车的程序,传统方法与改进方法的对比。
这就好比我们打造⼀辆完整的汽车,如果所有的配件都是自己造,那么当客户需求发生改变的时候,比如轮胎的尺寸不再是原来的尺寸了,那我们要自己动手来改了,但如果我们是把轮胎外包出去,那么即使是轮胎的尺寸发生改变了,我们只需要向代理工厂下订单就行了,我们自身是不需要出力的。
传统的在建造车辆时代码中对象的创建顺序:
Car -> Framework -> Bottom -> Tire
改进之后解耦的代码在建造车辆时代码中对象的创建顺序:
Tire -> Bottom -> Framework -> Car
总之:学习Spring最核心的功能,就是1.学习如何将对象(Bean)存储到Spring(容器)以及如何从Spring(容器)中获取对象(Bean)。
Spring 是⼀个 IoC 容器,说的是对象的创建和销毁的权利都交给 Spring 来管理了,它本身又具备了存储对象和获取对象的能力。
三、DI的概念
DI 是 Dependency Injection的缩写☞即 “依赖注入”
就是由 IoC 容器在运行期间,动态地将某种依赖关系注入到对象之中(也就是自动的将某一个类拿到当前类来使用)。
四、IoC 与DI之间的联系
所以依赖注入(DI)和控制反转(IoC)是从不同的角度描述同⼀件事情,就是指通过引入 IoC 容器,利用依赖关系注⼊的方式,实现对象之间的解耦。
IoC 是“目标”也是⼀种思想
而DI是具体的实现