# Spring

***

## Spring 是什么

Spring 是一个支持快速开发 Java EE 应用程序的框架。它提供了一系列底层容器和基础设施，并可以和大量常用的开源框架无缝集成，可以说是开发 Java EE 应用程序的必备。

随着 Spring 越来越受欢迎，在 Spring Framework 基础上，又诞生了 Spring Boot、Spring Cloud、Spring Data、Spring Security 等一系列基于 Spring Framework 的项目。

## Spring Boot

**Spring Boot 是什么**

Spring Boot 是一个基于 Spring 的套件，它帮我们预组装了 Spring 的一系列组件，以便以尽可能少的代码和配置来开发基于 Spring 的 Java 应用程序。

以汽车为例，如果我们想组装一辆汽车，我们需要发动机、传动、轮胎、底盘、外壳、座椅、内饰等各种部件，然后把它们装配起来。Spring 就相当于提供了一系列这样的部件，但是要装好汽车上路，还需要我们自己动手。而 Spring Boot 则相当于已经帮我们预装好了一辆可以上路的汽车，如果有特殊的要求，例如把发动机从普通款换成涡轮增压款，可以通过修改配置或编写少量代码完成。

因此，Spring Boot 和 Spring 的关系就是整车和零部件的关系，它们不是取代关系，试图跳过 Spring 直接学习 Spring Boot 是不可能的。

Spring Boot 的目标就是提供一个开箱即用的应用程序架构，我们基于 Spring Boot 的预置结构继续开发，省时省力。

Spring Boot 让我们的 Spring 应用变的更轻量化。我们不必像以前那样繁琐的构建项目、打包应用、部署到 Tomcat 等应用服务器中来运行我们的业务服务。通过 Spring Boot 实现的服务，只需要依靠一个 Java 类，把它打包成 jar，并通过 java -jar 命令就可以运行起来。这一切相较于传统 Spring 应用来说，已经变得非常的轻便、简单。

**学习资源**

* [程序猿DD/SpringBoot-Learning](https://gitee.com/didispace/SpringBoot-Learning/tree/master/2.x)
* [lenve/javaboy-code-samples](https://github.com/lenve/javaboy-code-samples)
* [gf-huanchupk/SpringBootLearning](https://github.com/gf-huanchupk/SpringBootLearning)

### 创建第一个项目

* 创建第一个项目

***

## Source & Reference

* <https://www.liaoxuefeng.com/wiki/1252599548343744/1266265175882464>
