How-to Guides
本节提供了一些在使用 Spring Boot 时经常出现的常见“如何做……”问题的答案。其内容并非详尽无遗,但确实涵盖了很多方面。
如果你遇到一个我们这里未涵盖的具体问题,可以查看 stackoverflow.com,看看是否已有人提供了答案。这也是提出新问题的好地方(请使用 spring-boot 标签)。
我们也非常乐意扩展这一部分内容。如果你想添加一个 “how-to”,请向我们发送一个 pull request。
章节总结
📄️ Spring Boot 应用程序
本节包含与 Spring Boot 应用程序直接相关的主题。
📄️ Properties and Configuration
本节包含有关设置和读取属性与配置设置,以及它们与 Spring Boot 应用程序交互的主题。
📄️ 嵌入式 Web 服务器
每个 Spring Boot Web 应用程序都包含一个内嵌的 Web 服务器。这一特性引发了许多“如何做”的问题,包括如何更改内嵌服务器以及如何配置内嵌服务器。本节将回答这些问题。
📄️ Spring MVC
Spring Boot 提供了多个包含 Spring MVC 的 starter。请注意,某些 starter 是通过依赖的方式引入 Spring MVC,而不是直接包含它。本节将解答有关 Spring MVC 和 Spring Boot 的常见问题。
📄️ Jersey
Spring Security 可以用于保护基于 Jersey 的 Web 应用程序,其方式与保护基于 Spring MVC 的 Web 应用程序非常相似。然而,如果你想在 Jersey 中使用 Spring Security 的方法级安全功能,则必须将 Jersey 配置为使用 setStatus(int) 而非 sendError(int)。这样可以防止 Jersey 在 Spring Security 有机会向客户端报告身份验证或授权失败之前就提交响应。
📄️ HTTP Clients
Spring Boot 提供了多个可与 HTTP 客户端配合使用的 starter。本节解答有关使用它们的相关问题。
📄️ 日志记录
Spring Boot 除了 Commons Logging API 之外没有强制的日志依赖,而该 API 通常由 Spring Framework 的 spring-jcl 模块提供。要使用 Logback,你需要将其和 spring-jcl 添加到 classpath 中。推荐的做法是通过 starters 来实现,因为所有 starters 都依赖于 spring-boot-starter-logging。对于 Web 应用程序,你只需要引入 spring-boot-starter-web,因为它会通过传递依赖自动引入日志 starter。如果你使用 Maven,以下依赖会为你添加日志功能:
📄️ 数据访问
Spring Boot 包含了多个用于处理数据源的 starters。本节将解答与此相关的常见问题。
📄️ 数据库初始化
SQL 数据库的初始化方式取决于你所使用的技术栈。当然,如果数据库是一个独立的进程,你也可以手动进行初始化。建议使用单一的机制来进行 schema 生成。
📄️ NoSQL
Spring Boot 提供了多个支持 NoSQL 技术的 starter。本节解答在使用 Spring Boot 与 NoSQL 时出现的问题。
📄️ 消息传递
Spring Boot 提供了多个 starter 以支持消息传递。本节解答在使用 Spring Boot 进行消息传递时可能出现的问题。
📄️ 批处理应用程序
当人们在 Spring Boot 应用程序中使用 Spring Batch 时,经常会遇到一些问题。本节将解答这些问题。
📄️ Actuator
Spring Boot 包含了 Spring Boot Actuator。本节解答了在使用过程中经常出现的问题。
📄️ Security
本节解答了使用 Spring Boot 时有关安全性的常见问题,包括在 Spring Boot 中使用 Spring Security 所引发的问题。
📄️ 热插拔
Spring Boot 支持热交换(hot swapping)。本节回答有关其工作原理的问题。
📄️ 测试
Spring Boot 包含了许多测试工具和辅助类,以及一个专用的 starter,用于提供常见的测试依赖。本节解答有关测试的常见问题。
📄️ 构建
Spring Boot 包含了用于 Maven 和 Gradle 的构建插件。本节回答有关这些插件的常见问题。
📄️ Ahead-of-Time Processing
当人们使用 Spring Boot 应用程序的预先编译(ahead-of-time)处理时,常常会遇到一些问题。本节将解答这些问题。
🗃️ GraalVM Native Applications
2 个项目
📄️ 类数据共享与 AOT 缓存
本节包含有关在 Spring Boot 应用程序中使用 Class Data Sharing(CDS)和 AOT Cache 的信息。有关 Spring Boot 对 CDS 和 AOT Cache 支持的概述,请参阅 Class Data Sharing。
🗃️ 部署 Spring Boot 应用
3 个项目
📄️ Docker Compose
本节包含与 Spring Boot 中的 Docker Compose 支持相关的主题。