Spring Boot 详细讲义
目录
- Spring Boot 简介
- Spring Boot 快速入门
- Spring Boot 核心功能
- Spring Boot 技术栈与集成
- Spring Boot 高级主题
- Spring Boot 项目实战
- Spring Boot 最佳实践
- 总结
一、Spring Boot 简介
1. Spring Boot 概念和核心特点
1.1、什么是 Spring Boot?
Spring Boot 是一个基于 Spring Framework 的延申项目,旨在通过简化配置和设置,帮助开发人员更快地构建、配置和部署基于 Spring 的应用程序。它通过自动配置和内嵌服务器的特性,大大减少了传统 Spring 应用的配置复杂度。
1.2、 Spring Boot 的主要特点
- 简化配置
Spring Boot 通过内嵌的配置文件(如application.properties
或application.yml
)和自动配置特性,减少了传统 Spring 项目中大量的 XML 或注解配置。 - 自动配置
Spring Boot 根据项目依赖自动配置 Bean 和环境。例如,添加了spring-boot-starter-web
依赖后,Spring Boot 会自动配置嵌入式 Tomcat 服务器和 Web 应用的基础设施。 - 内嵌服务器
Spring Boot 内置了像 Tomcat、Jetty 和 Undertow 等常见的 Web 服务器,无需额外安装服务器即可运行 Web 应用。 - 无需代码生成
Spring Boot 不需要任何代码生成过程,开发者只需编写业务逻辑代码即可。 - 生产环境友好
Spring Boot 提供了强大的生产环境支持,包括监控、健康检查、外部化配置等功能,方便应用在生产环境中部署和管理。
2. Spring Boot 的优势
2.1、 与传统 Spring 的对比
特性 | 传统 Spring | Spring Boot |
---|---|---|
配置复杂度 | 高,需要大量 XML 或注解配置 | 低,简化配置,自动配置为主 |
启动速度 | 较慢,需要手动配置服务器 | 快速,内嵌服务器 |
依赖管理 | 需要手动管理依赖版本 | 通过 Starter 依赖自动管理 |
生产环境支持 | 需要额外配置监控和日志 | 内置监控和日志功能 |
开发效率 | 较低,需要更多的配置和搭建工作 | 更高,快速开发和部署 |
2.2、 适用场景
- 快速开发
适合快速搭建和验证想法的开发场景。 - 微服务
Spring Boot 是构建微服务的首选工具,结合 Spring Cloud 可以轻松实现微服务架构。 - API 展现
适合快速构建 RESTful API 服务。 - 嵌入式应用
适合需要内嵌 Web 服务器的桌面或移动应用。
3. Spring Boot 的版本和生态
3.1、Spring Boot 与 Spring Framework 的关系
Spring Boot 是 Spring Framework 的一个扩展,两者共享相同的核心功能,但 Spring Boot 提供了更简化的配置和更高效的开发体验。
- Spring Framework:专注于核心框架功能,如 IOC、AOP 等。
- Spring Boot:在 Spring Framework 基础上增加了自动配置、内嵌服务器等特性,简化了应用的开发和部署。
3.2 常见的组件和工具集
- Spring Data
提供对数据库的简化操作,支持 JPA、MongoDB、Redis 等。 - Spring Security
提供安全认证和授权功能,支持 OAuth2、JWT 等。 - Spring Cloud
提供微服务相关的组件,如服务注册、断路器、API 网关等。 - Spring Actuator
提供生产环境监控和管理功能。 - Spring Initializr
Spring Boot 项目模板生成工具,支持 Maven 和 Gradle 项目。
3.3、 Spring Boot 的版本说明

二、Spring Boot 快速入门
1、 Spring Boot 环境搭建
1.1 Java 8 或更高版本的安装与配置
- 安装 Java
Spring Boot 2.x 版本要求 Java 8 或更高版本。访问 Oracle Java 官方网站,下载并安装适合的版本。 - 配置环境变量
安装完成后,配置JAVA_HOME
和PATH
环境变量,确保系统可以识别 Java。- 验证安装 :在命令行输入
java -version
,查看 Java 版本。
- 验证安装 :在命令行输入
1.2 Maven 的安装与配置
1.什么是maven
Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具.
通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。
2.Maven安装
【检查】确认已经安装jdk,已经环境变量中配置JAVA_HOME,已经修改Path
【下载】从http://maven.apache.org/download.cgi下载所需要的版本。
【解压】解压maven到某一指定目录,例如:D:\apache-maven-3.5.2,目录下会有bin、conf、lib等文件夹。
3.配置环境变量
1.右键我的电脑(或者计算机)-属性-高级系统设置-高级-环境变量-系统变量-新建MAVEN_HOME,添加maven的安装目录
2.把%MAVEN_HOME%\bin;追加到Path变量的值后面
3.检验是否成功
cmd中输入 mvn -v,会显示版本信息
4 配置仓库
maven安装好以后,我们需要配置仓库用来加载项目需要的依赖包
maven存储jar包的仓库有3种 :本地仓库,远程仓库(私服),中央仓库, 检索顺序:先检索本地仓库--再检索远程仓库--最后检索中央仓库 .
我们需要配置本地仓库和私服。
1.配置本地仓库
maven安装目录/conf文件夹下找到settings.xml,修改本地仓库路径(之前有仓库的设置为之前仓库的路径,没有的会自动创建文件夹,以后从私服下载下来的jar包会保存到本地仓库中)
2.配置远程仓库
一般都使用国内镜像或者公司自己搭建私服, 目的是加快下载速度
在settings.xml文件中添加远程仓库的路径
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

1.3 IDE 安装与配置
-
Eclipse
下载并安装 Eclipse。安装完成后,需要额外安装 Spring Tools 插件以支持 Spring Boot 开发。
-
IntelliJ IDEA
推荐使用 IntelliJ IDEA,它对 Spring Boot 有更好的支持。
- 下载社区版(免费)或ultimate版。
- 安装完成后,确保 Maven 或 Gradle 插件已启用。
1.4 Idea环境配置
1.idea中配置jdk



点Add New SDK,然后选择jdk的安装目录即可添加JDK。
2.idea中配置maven
idea中打开"File"-->"settings",搜索"maven",如图,配置maven目录,settings文件目录,本地仓库目录

3.idea中设置编码和代码风格
file->settings中搜索File Encoding,可以设置编码

还可以设置代码风格
如图所示,可以选择不同的代码风格,默认是Dark(黑底白字),也可以选择其它风格,白底黑字等

2、 第一个 Spring Boot 应用
2.1 使用云脚手架创建第一个项目
通过云原生脚手架创建
云原生脚手架地址:https://start.aliyun.com
1、打开云原生脚手架,在线创建springboot项目。



将下载的项目解压后在idea中打开(注意解压后多两层bootdemo目录,打开里层的)
file->open->选择项目所在的位置

项目结构如下:
- src/main/java/ :存放Java源代码文件
- com.example.bootdemo:Java包名,根据实际情况可以自定义
- BootdemoApplication.java:Spring Boot应用程序的入口类,包含main方法。
- com.example.bootdemo:Java包名,根据实际情况可以自定义
- src/main/resources/ :存放资源文件(脚手架没有生成,后续我们可以自己手动创建)
- static/:存放静态资源文件,如CSS、JavaScript等
- templates/:存放模板文件,如Thymeleaf模板文件
- application.properties 或application.yml:Spring Boot应用的配置文件,包括数据库连接、端口等配置信息
- src/test/java/:存放测试代码
- pom.xml:Maven项目的配置文件,管理项目的依赖和构建等信息
默认pom中添加了springboot,test包,我们可以在pom文件中添加项目需要的其它依赖包,比如mybatis,mysql驱动,springweb等(需要的时候再加)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2.2创建一个简单的 HelloWorld
控制器
在com.example.bootdemo包下创建HelloWorldController.java文件
java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
2.3 运行和测试
通过 Maven命令运行
项目打包

项目运行:

访问测试
在浏览器中输入 http://localhost:8080/hello
,查看是否返回 "Hello, Spring Boot!"。
