所有四个嵌入式Web服务器(Jetty,Reactor Netty,Tomcat和Undertow)以及响应式和基于Servlet的Web应用程序都支持正常关机。它是关闭应用程序上下文的一部分,并且在停止SmartLifecyclebean的最早阶段执行。此停止处理使用一个超时,该超时提供一个宽限期,在此宽限期内,现有请求将被允许完成,而新请求将不被允许。不允许新请求的确切方式因所使用的Web服务器而异。Jetty,Reactor Netty和Tomcat将停止在网络层接受请求。Undertow将接受请求,但会立即以服务不可用(503)响应进行响应。

    使用Tomcat正常关机需要Tomcat 9.0.33或更高版本。

    要启用正常关机,请配置server.shutdown属性,如以下示例所示:
    物产
    Yaml

    1. server.shutdown=graceful

    要配置超时时间,请配置spring.lifecycle.timeout-per-shutdown-phase属性,如以下示例所示:
    物产
    Yaml

    1. spring.lifecycle.timeout-per-shutdown-phase=20s
    如果您的IDE无法正常发送SIGTERM信号,则可能无法正常运行。有关更多详细信息,请参阅IDE的文档。