Sobes.tech
Назад к вопросам
Junior — Middle
66

Будет ли вызван метод, помеченный аннотацией @PreDestroy, у бина с областью действия Prototype в Spring при завершении его работы?

Компании, где спрашивали
Stroki

Ответ от нейросети

sobes.tech AI

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

Причина в том, что Spring управляет жизненным циклом singleton-бинов полностью, включая вызов методов инициализации и уничтожения. Для prototype-бинов Spring создает экземпляр и передает его клиенту, но не отслеживает дальнейший жизненный цикл, поэтому методы @PreDestroy не вызываются автоматически.

Если нужно выполнить очистку для prototype-бина, это должен делать клиент, который получил этот бин, вручную вызывая соответствующие методы.