Плавне завершення роботи підтримується всіма чотирма вбудованими вебсерверами (Jetty, Reactor Netty, Tomcat і Undertow), а також реактивними вебдодатками та вебдодатками на основі сервлетів. Воно здійснюється в межах закриття контексту програми і виконується на ранньому етапі зупинки бінів SmartLifecycle. Ця процедура обробки припинення роботи використовує час очікування, який забезпечує період відтермінування, протягом якого існуючим запитам буде дозволено завершитись, але передача нових запитів буде заборонена. Точний спосіб заборони передачі нових запитів залежить від вебсервера, який використовується. Jetty, Reactor Netty та Tomcat перестануть приймати запити на мережному рівні. Undertow прийматиме запити, але одразу ж видаватиме відповідь "сервіс недоступний" (503).

Для плавного завершення роботи при використанні Tomcat потрібна версія Tomcat 9.0.33 або пізніша.

Щоб активувати режим плавного завершення роботи, налаштуй властивість server.shutdown, як показано в наступному прикладі:

Properties
server.shutdown=graceful
Yaml
server:
  shutdown: "graceful"

Щоб налаштувати період часу очікування, налаштуй властивість spring.lifecycle.timeout-per-shutdown-phase, як показано в наступному прикладі:

Properties
spring.lifecycle.timeout-per-shutdown-phase=20s
Yaml
spring:
  lifecycle:
    timeout-per-shutdown-phase: "20s"
Режим плавного завершення роботи у твоїй IDE може працювати неправильним чином, якщо вона не надсилатиме належний сигнал SIGTERM. Докладнішу інформацію див. у документації до твого IDE.