一. Spring框架概述
1. 什么是Spring框架
我们通常所说的 Spring
指的是 Spring Framework
(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因.Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单.
⽤⼀句话概括 Spring: Spring 是包含了众多⼯具⽅法的IoC容器.
2. 为什么要学习框架?
因为学习框架相当于从“小作坊”到“工厂”的升级,小作坊什么都要自己做,工厂是组件式装配,特点就是高效。框架更加易⽤,简单且高效.
Servlet有以下痛点:
- 添加外部 jar 不⽅便,容易出错,比如添加了⼀个不匹配的外部 jar 版本。
- 运行和调试的时候需要配置 Tomcat 不⽅便。
- 发布不方便,Servlet 项目必须依靠外置的 Tomcat(外置的 Web 容器)运行。
- 路由配置不方便,⼀个访问地址对应⼀个 Servlet 类。
- …
而 Spring Boot 相比于 Servlet 具备以下优点:
- 快速添加外部 jar 包。
- 调试项目更方便,无需配置 Tomcat,点击“运行”按钮就可以直接运行项目,因为 Spring Boot 内置了 Tomcat 容器可直接运行,但是 Servlet 需外挂 Tomcat。
- 发布项目更加方便,无需配置 Tomcat,使用 java -jar 方式就可以发布。
- 对象自动装配。
- 添加路由更加方便,无需每个访问地址都添加⼀个类。
- …
3. Spring框架学习的难点
- 配置比较多。
- 需要⼤量的外部 jar 包,在下载时容易出错。
- 会涉及简单的软件⼯程的设计思想(分层思想:前后端的分层思想;后端工程的分层思想)。
- 知识点相对来说比之前的知识更加的分散,要仔细听才能搞懂各个知识点的逻辑关系。
- 要记的东西很多,所以要大量地重复练习才能记住,比如各种注解。
Spring框架基本学习应用路线:Spring全家桶
(Spring/Spring Boot/Spring MVC) -> MyBatis
-> Redis
等。
二. Spring 核心与设计思想
Spring 核心就是这么一句话:Spring 框架是包含了众多工具方法的 IoC 容器。
那么这句话怎么理解呢?什么是容器?什么又是 IoC?
1. 什么是容器?
容器是⽤来容纳某种物品的(基本)装置。 ——来⾃:百度百科
之前我们接触的容器有以下:
- List/Map -> 数据存储容器
- Tomcat -> Web 容器
Spring 是就一个 IoC
容器,它包含了许多的工具和方法.
2. 什么是IoC?
IoC : Inversion of Control
翻译成中⽂是“控制反转”的意思.这是一种思想,控制权反转,在 Java 的常规代码中,对象的生命周期,是由当前代码(程序员自己)控制的,而控制权反转就是对象的生命周期,不再由当前代码片段来控制,而是由 Spring
(IoC 容器)来控制.
举个