Действует ли аннотация @PreDestroy для бина с синглтонским диапазоном жизненного цикла в Spring в любой ситуации?

Аннотация @PreDestroy в Spring применяется для методов, которые должны быть вызваны перед уничтожением бина.

Короткий ответ

Что ответить на собеседовании

Аннотация @PreDestroy в Spring применяется для методов, которые должны быть вызваны перед уничтожением бина. Для бинов с синглтонским скоупом @PreDestroy вызывается при завершении работы контекста Spring (например, при остановке приложения).

Подробный разбор

Ответ с пояснениями

Аннотация @PreDestroy в Spring применяется для методов, которые должны быть вызваны перед уничтожением бина. Для бинов с синглтонским скоупом @PreDestroy вызывается при завершении работы контекста Spring (например, при остановке приложения).

Однако в некоторых ситуациях метод с @PreDestroy может не вызваться:

  • Если приложение аварийно завершилось (например, процесс был убит).
  • Если бин не управляется Spring (например, создан вручную без контекста).
  • Если контекст Spring не закрывается корректно.

Таким образом, @PreDestroy гарантированно срабатывает для синглтонских бинов при корректном завершении работы Spring-контекста, но не во всех возможных ситуациях.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее