此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.4spring-doc.cn

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.4spring-doc.cn

默认情况下,所有四个嵌入式 Web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及反应式和基于 servlet 的 Web 应用程序都启用了正常关闭。 它是作为关闭应用程序上下文的一部分发生的,并且在停止 bean 的最早阶段执行。 此停止处理使用超时,该超时提供宽限期,在此期间将允许完成现有请求,但不允许新请求。SmartLifecyclespring-doc.cn

要配置超时期限,请配置属性,如以下示例所示:spring.lifecycle.timeout-per-shutdown-phasespring-doc.cn

spring.lifecycle.timeout-per-shutdown-phase=20s
spring:
  lifecycle:
    timeout-per-shutdown-phase: "20s"
使用 Tomcat 正常关闭需要 Tomcat 9.0.33 或更高版本。
如果 IDE 中的关闭没有发送正确的信号,则可能是立即的,而不是正常的。 有关更多详细信息,请参阅 IDE 的文档。SIGTERM
使用 Tomcat 正常关闭需要 Tomcat 9.0.33 或更高版本。
如果 IDE 中的关闭没有发送正确的信号,则可能是立即的,而不是正常的。 有关更多详细信息,请参阅 IDE 的文档。SIGTERM

在宽限期内拒绝请求

不允许新请求的确切方式因所使用的 Web 服务器而异。 实现可能会在网络层停止接受请求,或者它们可能会返回具有特定 HTTP 状态代码或 HTTP 标头的响应。 使用持久连接还可以更改停止接受请求的方式。spring-doc.cn

Jetty、Reactor Netty 和 Tomcat 将停止在网络层接受新请求。 Undertow 将接受新连接,但会立即响应服务不可用 (503) 响应。spring-doc.cn

要了解有关 Web 服务器使用的特定方法的更多信息,请参阅 、 或 的 API 文档。shutDownGracefullyTomcatWebServer.shutDownGracefully(GracefulShutdownCallback)NettyWebServer.shutDownGracefully(GracefulShutdownCallback)JettyWebServer.shutDownGracefully(GracefulShutdownCallback)UndertowWebServer.shutDownGracefully(GracefulShutdownCallback)

禁用正常关闭

要禁用正常关闭,请配置该属性,如以下示例所示:server.shutdownspring-doc.cn

server.shutdown=immediate
server:
  shutdown: "immediate"