Skip to content

Spring Boot 概览

概览

Spring Boot 帮助您创建独立的、可用于生产环境的基于 Spring 的应用程序,您可以直接运行它们。我们对 Spring 平台和第三方库采取了“意见式”的配置方式,使您可以以最少的麻烦快速入门。大多数 Spring Boot 应用程序几乎不需要 Spring 配置。

您可以使用 Spring Boot 创建 Java 应用程序,并通过 java -jar 启动,也可以使用更传统的 war 部署方式。

我们的主要目标包括:

  • 提供一个极大加速且广泛可用的 Spring 开发入门体验
  • 开箱即用地提供“意见式”配置,但随着需求与默认设置的分歧,快速让出配置控制
  • 提供大量项目中常见的非功能特性(如嵌入式服务器、安全性、指标、健康检查和外部配置)
  • 绝不进行代码生成(在非原生镜像的情况下)且无需 XML 配置

文档概览

入门

如果您刚开始接触 Spring Boot 或 Spring,可以从以下主题开始:

从早期版本升级

请始终确保您使用受支持的 Spring Boot 版本。根据升级的目标版本,可以查看以下升级指南:

使用 Spring Boot 开发

准备开始使用 Spring Boot 开发?我们为您提供了以下内容

了解 Spring Boot 功能

需要更多关于 Spring Boot 核心功能的详细信息?以下内容适合您

Web

如果您开发 Spring Boot Web 应用程序,可以查看以下内容:

数据

如果您的应用程序涉及数据存储,可以在此处查看相关配置:

消息传递

如果您的应用程序使用任何消息传递协议,可查看以下内容:

IO

如果您的应用程序需要 IO 功能,可以查看以下内容:

容器镜像

Spring Boot 提供了高效的容器镜像构建支持,详情如下:

推向生产环境

当您准备好将 Spring Boot 应用程序推向生产时,以下内容可能会对您有帮助:

生产环境优化

Spring Boot 应用程序可以通过以下技术进行生产优化:

高级主题

最后,我们为高级用户准备了一些主题:

社区

如果您在使用 Spring Boot 时遇到问题,我们乐于提供帮助。

  • 查看 HowTo 文档:这些文档提供了对常见问题的解决方案。
  • 学习 Spring 基础知识:Spring Boot 基于许多其他 Spring 项目构建。请访问 spring.io 网站查阅丰富的参考文档。如果您是 Spring 的初学者,可以先试试其中的指南
  • 提问:我们会在 stackoverflow.com 上关注带有 spring-boot 标签的问题。
  • 报告 Bug:如果遇到 Spring Boot 的 Bug,可以在 GitHub 上提交问题。

ℹ️

Spring Boot 是开源的,包括文档。如果您发现文档有问题或想要改进文档,欢迎参与贡献!

系统要求

Spring Boot 3.3.5 需要至少 Java 17,并兼容最高至 Java 23 的版本。同时,Spring Framework 6.1.14 或更高版本也是必需的。

Spring Boot 3.3.5 明确支持以下构建工具:

Build ToolVersion
Maven3.6.3 or later
Gradle7.x (7.5 or later) and 8.x

Servlet 容器

Spring Boot 支持以下嵌入式 Servlet 容器:

NameServlet Versionps.说明
Tomcat 10.1 (10.1.25 or later)6.0默认嵌入式容器,广泛使用,性能稳定
Jetty 12.06.0适合需要较小内存占用和快速启动的应用
Undertow 2.36.0轻量级、高性能的容器,适用于需要非阻塞 IO 的应用

另外还可以将 Spring Boot 应用程序部署到任何兼容 Servlet 5.0+ 的容器中

GraalVM 原生镜像

Spring Boot 应用程序可以使用 GraalVM 22.3 或更高版本转换为原生镜像。

可以通过 GraalVM 提供的 native-image 工具或 Gradle/Maven 的原生构建插件来创建镜像。此外,还可以使用 Paketo buildpack 的 native-image 功能来生成原生镜像。

支持的 GraalVM 版本包括:

NameVersion
GraalVM Community22.3
Native Build Tools0.10.3

安装 SpringBoot

Spring Boot 可以与 ‘经典’ Java 开发工具一起使用,也可以安装为命令行工具。无论选择哪种方式,您都需要 Java SDK v17 或更高版本。开始之前,可以使用以下命令检查 Java 版本:

Bash
$ java -version

如果您是 Java 开发的新手或想试用 Spring Boot,建议先尝试 Spring Boot CLI(命令行工具)。否则,请继续阅读“经典”安装说明。

Java 开发人员的安装说明

Spring Boot 可以像其他标准 Java 库一样使用。只需将合适的 spring-boot-*.jar 文件添加到类路径即可。Spring Boot 不需要任何特殊工具集成,因此您可以使用任何 IDE 或文本编辑器。Spring Boot 应用程序的运行和调试方式与普通 Java 程序相同。

尽管可以手动复制 Spring Boot JAR 文件,我们通常建议使用支持依赖管理的构建工具(如 Maven 或 Gradle)。

Maven 安装

Spring Boot 兼容 Apache Maven 3.6.3 及更高版本。如果尚未安装 Maven,可按照 maven.apache.org 的说明进行安装。

💡

在许多操作系统中,可以使用包管理器安装 Maven。例如:

  • macOS 使用 Homebrew:brew install maven
  • Ubuntu 用户:sudo apt-get install maven
  • Windows 用户(使用 Chocolatey):在管理员权限下运行 choco install maven

Spring Boot 依赖使用 org.springframework.boot 组 ID。典型的 Maven POM 文件从 spring-boot-starter-parent 项目继承,并声明一个或多个 starter 依赖项。Spring Boot 还提供了一个可选的 Maven 插件,用于创建可执行的 JAR 文件。

更多关于 Spring Boot 和 Maven 的入门信息可以在 Maven 插件的参考指南 中找到。

Gradle 安装

Spring Boot 兼容 Gradle 7.x(7.5 或更高版本)和 8.x。如果尚未安装 Gradle,可按照 gradle.org 的说明进行安装。

Spring Boot 依赖项可以通过 org.springframework.boot 组声明。项目通常会声明一个或多个 starter 依赖项。Spring Boot 提供了一个实用的 Gradle 插件,用于简化依赖声明并创建可执行的 JAR 文件。

💡

Gradle Wrapper Gradle Wrapper 提供了一种“获取” Gradle 的方式,以便在构建项目时使用。Wrapper 是一个小的脚本和库,您可以将其与代码一起提交以引导构建过程。详情请参阅 Gradle Wrapper 用户指南。 更多关于 Spring Boot 和 Gradle 的入门信息可以在 Gradle 插件的参考指南 中找到。

安装 Spring Boot CLI

Spring Boot CLI 是一个命令行工具,可以快速原型开发 Spring 应用程序。虽然使用 Spring Boot 不需要 CLI,但它是快速启动 Spring 应用程序的便捷方式,无需 IDE。

手动安装

您可以从以下位置下载 Spring CLI 发行版:

下载后,解压文件,并按照 INSTALL.txt 中的说明操作。解压后的文件夹中 bin/ 目录下有一个 spring 脚本(Windows 为 spring.bat),也可以使用 java -jar 命令运行 .jar 文件(脚本可帮助您正确设置类路径)。

使用 SDKMAN! 安装

SDKMAN! (The Software Development Kit Manager) 是一个软件开发工具包管理器,可用于管理多个二进制 SDK 版本,包括 Groovy 和 Spring Boot CLI。通过 sdkman.io 获取 SDKMAN!,并使用以下命令安装 Spring Boot:

Bash
$ sdk install springboot
$ spring --version
Spring CLI v3.3.5

如果开发 CLI 功能并希望使用您构建的版本,可以使用以下命令:

Bash
$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-3.3.5-bin/spring-3.3.5/
$ sdk default springboot dev
$ spring --version
Spring CLI v3.3.5

上述指令安装了名为 dev 的本地 spring 实例,指向您的目标构建位置,因此每次重新构建 Spring Boot 时,spring 都会保持最新。

可以通过以下命令查看版本列表:

Bash
$ sdk ls springboot

================================================================================
Available Springboot Versions
================================================================================
> + dev
* 3.3.5

================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

macOS Homebrew 安装

如果您使用 macOS 和 Homebrew,可通过以下命令安装 Spring Boot CLI:

Bash
$ brew tap spring-io/tap
$ brew install spring-boot

Homebrew 会将 spring 安装到 /usr/local/bin

ℹ️

如果未找到 formula(组件),可能需要更新 Homebrew:brew update

MacPorts 安装

如果您在 Mac 上使用 MacPorts,可通过以下命令安装 Spring Boot CLI:

Bash
$ sudo port install spring-boot-cli

命令行补全

Spring Boot CLI 包括为 BASHzsh 提供命令补全的脚本。可以手动 source 脚本(zsh 为 _spring),或将其放在您的个人或系统范围的 bash 补全初始化中。对于 Debian 系统,系统范围脚本位于 <installation location>/shell-completion/<bash|zsh> 中,启动新 shell 时会自动执行该目录中的所有脚本。使用 SDKMAN! 安装后,可以使用以下命令手动运行补全脚本:

Bash
$ . ~/.sdkman/candidates/springboot/current/shell-completion/bash/spring
$ spring <HIT TAB HERE>
  encodepassword  help  init  shell  version

ℹ️

通过 Homebrew 或 MacPorts 安装 Spring Boot CLI 时,命令行补全脚本会自动注册到 shell。

Windows Scoop 安装

如果您在 Windows 上使用 Scoop,可以通过以下命令安装 Spring Boot CLI:

Bash
$ scoop bucket add extras
$ scoop install springboot

Scoop 将 spring 安装到 ~/scoop/apps/springboot/current/bin

ℹ️

如果未找到应用程序清单,可能需要更新 Scoop:scoop update

升级 SpringBoot

关于如何从早期版本升级 Spring Boot 的说明,可以在项目 Wiki 上找到。请通过发布说明中的链接,找到您希望升级到的版本。

升级说明通常是发布说明中的第一个项目。如果您的版本落后于多个版本,请确保也查看您跳过的版本的发布说明。

从 1.x 版本升级

如果您是从 Spring Boot 1.x 版本升级,请查看项目 Wiki 上的迁移指南,其中提供了详细的升级说明。同时,请查看发布说明,了解每个版本中的“新功能和亮点”。

升级到新功能版本

在升级到新功能版本时,某些属性可能已被重命名或移除。Spring Boot 提供了一种方法,可以分析应用程序的环境并在启动时打印诊断信息,还可以在运行时暂时迁移属性。要启用此功能,请将以下依赖项添加到您的项目中:

XML
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-properties-migrator</artifactId>
        <scope>runtime</scope>
</dependency>

⚠️

请注意,像 @PropertySource 这样在环境中较晚添加的属性将不会被考虑在内

ℹ️

完成迁移后,请确保从项目的依赖项中移除该模块

升级 Spring Boot CLI

要升级现有的 CLI 安装,请使用相应的包管理器命令(例如,brew upgrade)。如果您是手动安装 CLI,请按照标准说明进行操作,并记得更新您的 PATH 环境变量,删除任何旧的引用