Spring(一):Spring 的创建和使用
目录
什么是容器?
什么是 IoC?
什么是 IoC?
IoC的优点是啥呢?
理解 IoC
DI 概念说明
Spring 的创建
创建 Spring 项目
1. 创建⼀个普通 Maven 项⽬。
2. 添加 Spring 框架⽀持(spring-context、spring-beans)。
3. 添加启动类
将 bean 对象存储到 Spring(IoC)中
将 bean 对象从 Spring(IoC)中 取出
在开始Spring的创建和使用之前先来看看Spring的基本概念
Spring 是什么?
我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单。
⽤⼀句话概括 Spring:Spring 是包含了众多⼯具⽅法的 IoC 容器。 这里的众多工具体现在哪呢?这个慢慢学Spring都会介绍到。
那问题来了,什么是容器?什么是 IoC 容器?
什么是容器?
容器就是用来装某个物体的,我们之前就有学过容器:
- List/Map -> 数据存储容器
- Tomcat -> Web 容器
什么是 IoC?
Spring 也是⼀个容器,Spring 是什么容器呢?Spring 是⼀个 IoC 容器
什么是 IoC?
IoC = Inversion of Control 翻译成中⽂是“控制反转”的意思,也就是说 Spring 是⼀个“控制反转”的容器,怎么理解这句话呢?
控制(权)反转,指的是:对象的生命周期的控制权(原本属于 程序员/代码片段 控制),现在交给了Spring容器控制或者是IoC 容器控制
IoC的优点是啥呢?
答:可以实现解耦合(松耦合)
我们具体来举个栗子,具体的看看IoC的实现。
我们就创建一个普通的类:
我们的需求是这样的:
- 我们创建一辆车依赖了车的车身;
- 这个框架又依赖着车的底盘
- 这个底盘又依赖着车的轮胎
代码如下:
车身依赖底盘
底盘依赖轮胎
轮胎本身自带一个size 属性:
ok,旧的需求写到这里,我们客户现在需要自己规定轮胎大小,而不是每次都默认大小,那么从最底层 Tire 开始要进行传参 int size
此时就开始体现了耦合性太高,假设我们又有一个需求,需要换车身颜色呢?又需要从最底层开始向上修改到最高层所有的参数。
那么如果是用IoC 容器就很好的解决了这个问题。
这就很好的进行了 解耦合。
对比总结:
在传统的代码中对象创建顺序是:Car -> Framework -> Bottom -> Tire
改进之后解耦的代码的对象创建顺序是:Tire -> Bottom -> Framework -> Car
理解 IoC
回到我们的主题 Spring,本⽂刚开始咱们就讲:Spring 是包含了多个⼯具⽅法的 IoC 容器,这就是对 Spring 最核⼼的总结。“集成多个⼯具⽅法”这事咱们以后慢慢再讲,那如何理解“Spring 是⼀个 IoC 容器”这句话呢?
既然 Spring 是⼀个 IoC(控制反转)容器,重点还在“容器”⼆字上,那么它就具备两个最基础的功
能:
- 将对象存⼊到容器;
- 从容器中取出
Luhe: 如饮佳酿,甚欢😀
我可是ikun啊: https://gitee.com/code-cloud-of-wjm/my-project/tree/master/myblog-sm
我可是ikun啊: 好的,晚一点再发给你
会跑的豆子: 码云链接失效了 可以再发一次吗
北 海: avl树写的很详细