Spring Boot入门指南:极速上手开发
这段文字是 Spring Boot 官方文档的第3章 “Getting Started”(入门指南),它面向刚接触 Spring 或 Spring Boot 的开发者,系统地介绍了:
- 什么是 Spring Boot?
- 它能做什么?
- 如何安装和运行?
- 怎样快速创建第一个应用?
下面我们逐节深入解析,用通俗易懂的语言 + 结构化总结,帮你彻底理解这一部分内容。
🌟 整体结构概览
小节 | 内容 |
---|---|
3.0 引言 | 为什么读这一章?适合谁?会学到什么? |
3.1 简介 | Spring Boot 是什么?核心目标是什么? |
3.2 系统要求 | 需要什么环境?Java、构建工具、Servlet 容器等 |
3.3 安装方式 | 三种主要安装方法:Maven/Gradle(经典)、CLI(命令行) |
3.3.3 升级说明 | 从旧版本升级时的注意事项 |
🔍 详细解读与中文解释
✅ 3.0 引言:为什么要读这一章?
“If you are getting started with Spring Boot… start by reading this section.”
📌 这一章是初学者的起点,回答三个基本问题:
问题 | 回答 |
---|---|
What?(是什么) | Spring Boot 是一个简化 Spring 开发的框架 |
How?(怎么用) | 提供快速搭建项目、自动配置、可执行 JAR 包等功能 |
Why?(为什么用) | 让你专注于业务逻辑,而不是繁琐的配置 |
👉 学完这一章,你能:
- 理解 Spring Boot 的设计理念
- 成功安装并运行你的第一个 Web 应用
- 初步了解其核心原则(如“约定优于配置”)
✅ 3.1 什么是 Spring Boot?(Introducing Spring Boot)
“Spring Boot helps you to create stand-alone, production-grade Spring-based Applications…”
🧩 核心定义:
Spring Boot 是一个用于快速创建“独立、生产级”的 Spring 应用的框架。
🎯 它解决了什么痛点?
传统 Spring 开发太复杂:
- 要写大量 XML 配置
- 要手动集成各种组件(数据库、安全、日志等)
- 部署麻烦(需要 WAR 包 + 外部 Tomcat)
而 Spring Boot 的目标就是:让你少操心,快点开始写代码!
✅ Spring Boot 的四大核心目标
目标 | 解释 |
---|---|
1️⃣ 极速上手 Radically faster getting-started | 提供“开箱即用”的默认配置,无需从零配置。比如:内置服务器,不用自己装 Tomcat。 |
2️⃣ 约定优于配置 Opinionated but flexible | 默认给你一套最佳实践(如使用 Tomcat + Jackson + Logback),但你可以随时覆盖。 |
3️⃣ 非功能性特性内置 Non-functional features | 自动集成: • 健康检查 /actuator/health • 指标监控 • 外部化配置( application.yml )• 安全 |
4️⃣ 零代码生成 & 无 XML No code generation, no XML | 所有配置通过 Java 注解或属性文件完成,不生成额外代码,也不需要写 XML。 |
📌 举个例子:
以前你要写一堆 web.xml
和 Spring 配置文件;
现在你只需要一个 @SpringBootApplication
注解,加一个 main
方法,就能启动 Web 服务!
✅ 3.2 系统要求(System Requirements)
Spring Boot 2.3.12.RELEASE 要求 Java 8 及以上(最高支持到 Java 15)
组件 | 要求 |
---|---|
Java 版本 | Java 8 ~ Java 15 |
Spring Framework | 5.2.15.RELEASE 或更高 |
构建工具 | Maven 3.5+ 或 Gradle 6.3+(推荐) |
📦 支持的构建工具
工具 | 版本要求 |
---|---|
Maven | 3.5+ |
Gradle | 6.3+(6.x),5.6.x 已废弃 |
💡 推荐使用 Maven 或 Gradle 来管理依赖,而不是手动下载 JAR 包。
✅ 3.2.1 内嵌 Servlet 容器(Embedded Servlet Containers)
Spring Boot 支持以下内嵌 Web 服务器,无需单独安装 Tomcat!
服务器 | Servlet 版本 | 说明 |
---|---|---|
Tomcat 9.0 | Servlet 4.0 | 默认使用,最常见 |
Jetty 9.4 | Servlet 3.1 | 更轻量,适合高并发 |
Undertow 2.0 | Servlet 4.0 | 性能优秀,Red Hat 出品 |
📌 优点:
- 打包成一个 可执行 JAR 文件(
java -jar myapp.jar
) - 不依赖外部 Web 容器
- 启动就是
java -jar
,部署极简
✅ 同时也支持部署为 WAR 包到传统容器(如外部 Tomcat)。
✅ 3.3 安装 Spring Boot
有两种主要使用方式:
方式 | 适用人群 |
---|---|
💼 经典方式(Maven/Gradle) | 正式开发、企业项目、IDE 用户 |
⚡ CLI 命令行工具 | 快速原型、学习体验、脚本化开发 |
❗ 无论哪种方式,都要求先安装 JDK 1.8+
检查 Java 版本:
$ java -version
✅ 3.3.1 经典安装方式:Maven / Gradle
“You can use Spring Boot in the same way as any standard Java library.”
方法一:使用 Maven
-
添加父项目依赖(继承
spring-boot-starter-parent
):<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version> </parent>
-
添加功能“启动器”(Starters):
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> </dependencies>
-
使用插件打包可执行 JAR:
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins> </build>
📌 什么是 “Starter”?
是一组预定义的依赖集合,例如:
spring-boot-starter-web
= Web + Tomcat + JSON 支持spring-boot-starter-data-jpa
= 数据库访问支持
👉 大大简化了依赖管理。
方法二:使用 Gradle
类似 Maven,但用 build.gradle
文件:
plugins {id 'org.springframework.boot' version '2.3.12.RELEASE'id 'java'
}dependencies {implementation 'org.springframework.boot:spring-boot-starter-web'
}
Gradle Wrapper(gradlew
)可以帮你自动下载对应版本的 Gradle,非常方便。
✅ 3.3.2 安装 Spring Boot CLI(命令行工具)
“The quickest way to get a Spring application off the ground.”
CLI 是一个命令行工具,适合快速尝试 Spring Boot 功能。
🧩 特点:
- 使用 Groovy 脚本(语法像 Java,但更简洁)
- 不需要编译、打包
- 直接运行
.groovy
文件即可启动 Web 服务 - 适合做原型、学习、脚本任务
📦 安装方式汇总
安装方式 | 命令示例 |
---|---|
手动安装 | 下载 zip/tar.gz → 解压 → 把 bin/ 加入 PATH |
SDKMAN!(推荐 Linux/Mac) | sdk install springboot |
Homebrew(Mac) | brew install spring-boot |
MacPorts(Mac) | sudo port install spring-boot-cli |
Scoop(Windows) | scoop install springboot |
✅ 快速体验:写一个 Web 应用
创建文件 app.groovy
:
@RestController
class ThisWillActuallyRun {@RequestMapping("/")String home() {"Hello World!"}
}
运行:
$ spring run app.groovy
访问:http://localhost:8080 → 显示 Hello World!
💡 第一次运行较慢(下载依赖),之后很快。
🛠️ 命令补全(BASH/zsh)
CLI 提供了自动补全功能:
- 按
TAB
可提示命令:run
,test
,jar
,version
等 - Homebrew/MacPorts 安装后自动启用
✅ 3.3.3 如何从旧版本升级?
如果你是从 Spring Boot 1.x 升级过来……
注意事项:
-
查看迁移指南(Migration Guide)
- 地址:项目 Wiki(如 GitHub 上的说明)
- 包含每个版本的重大变更
-
检查“发布说明”(Release Notes)
- 了解新功能和废弃功能
-
属性名可能变化
- 某些配置项被重命名或移除
🔧 使用迁移助手工具
添加这个依赖,帮助检测配置问题:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-properties-migrator</artifactId><scope>runtime</scope>
</dependency>
✅ 它会在启动时:
- 打印警告:哪些属性已废弃
- 自动映射旧属性到新名称(临时兼容)
❗ 注意:
- 使用
@PropertySource
加载的配置不会被检测 - 迁移完成后记得删除这个依赖
升级 CLI 的方法
- 如果用
brew
:brew upgrade spring-boot
- 如果手动安装:重新下载新版本,并更新
PATH
环境变量
✅ 总结:Spring Boot 是什么?能干什么?
维度 | 说明 |
---|---|
🎯 定位 | 快速构建生产级 Spring 应用的框架 |
⚙️ 核心理念 | 约定优于配置、开箱即用、无 XML |
🚀 优势 | • 内嵌服务器(Tomcat/Jetty) • 可执行 JAR 包 • 自动配置 • 健康检查、监控 • 丰富的 Starter 组件 |
💻 使用方式 | • Maven/Gradle(正式开发) • CLI(快速原型) |
🧪 快速上手 | 写一个 Groovy 文件 → spring run → 访问网页 |
🔧 系统要求 | Java 8+,Maven 3.5+ 或 Gradle 6.3+ |
🎯 适合谁使用 Spring Boot?
用户类型 | 是否适合 |
---|---|
初学者 | ✅ 入门简单,文档丰富 |
Java 后端开发者 | ✅ 主流选择,企业广泛使用 |
微服务开发者 | ✅ Spring Cloud 基于 Spring Boot |
快速原型设计 | ✅ CLI 工具几秒启动 Web 服务 |
云原生应用 | ✅ 支持 Docker、Kubernetes 部署 |
💡 下一步建议
学完这一章后,你可以继续学习:
- 如何用 IDEA/Eclipse 创建 Spring Boot 项目?
@SpringBootApplication
到底做了什么?- 如何配置
application.yml
? - 如何连接数据库(JPA/MyBatis)?
- 如何使用 Actuator 查看健康状态?
如果你想,我可以一步步带你创建一个完整的 Spring Boot 项目 😊