1.Spring是什么?
用一句话概括Spring: Spring是包含了众多工具方法的 IoC 容器.
(1) 什么是IoC?
IoC 即 Inversion of Control 意思是控制反转.所谓控制反转就是控制和反转类的生命周期.
2.为什么要有Spring?
为了将程序解耦合,即降低程序之间的相关性,使代码更加便于维护,更方便.
(1)传统程序开发缺陷
当我们要创建一个汽车类
Car(汽车)→Framework(车身)→Bottom(底盘)→Tire(轮胎) →即 依赖
说明当我们创建一个Car类时,一定需要类内创建一个Framework类.
创建一个Framework类时,一定需要类内创建一个Bottom类
创建一个Bottom类时,一定需要类内创建一个Tire
但是,当需求越来越多样时,Tire的构造方法需要传参数,此时创建Tire的Bottom类就需要参数..
以此类推创建Car Framework类就需要参数,这样的代码耦合性太高,牵一发而动全身,不利于代码维护.
(2)如何解决传统开发缺陷----控制翻反转式程序开发
把创建子类的方式,改为注入传递的方式
同样的创建一个汽车类
Tire → Bottom → Framework → Car →即作为参数注入传递
想要创建一个Car类,就需要Framework类作为参数传递
Framework的创建又需要Bottom类作为参数传递
Bottom的创建又需要Tire类作为参数传递
此时我们如果想要修改Tire类 只需要改Tire 因为别的类只是被注入不关心这个类是什么样子的
我们发现创建类的顺序与传统相反,这就是控制反转
这样就达到了解耦合
3.深刻理解Spring是一个IoC容器
Spring是一个IoC容器.说的是对象的创建和销毁的权利都交给Spring来管理了,它本身又具备了存储对象和获取对象的能力.
学Spring最核心的功能,就是学如何将对象存入到Spring中,再从Spring中获取对象的过程.
4.DI 概念说明
DI即Dependency Injection 意思是依赖注入.所谓依赖注入即由IoC容器在运行期间,动态地将某种关系注入到对象之中.所以,依赖注入(DI)和控制反转(IoC)是从不同的角度的描述的同一件事情,就是指通过引入 IoC 容器,利用依赖关系注入的方式,实现对象之间的解耦。