Контролирует ли контейнер Spring жизненный цикл экземпляра Bean, объявленного с диапазоном scope='prototype'?

Контейнер Spring не контролирует полный жизненный цикл экземпляров Bean с областью видимости prototype.

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

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

Контейнер Spring не контролирует полный жизненный цикл экземпляров Bean с областью видимости prototype. При таком scope Spring создает новый экземпляр бина каждый раз при запросе, но после создания и инициализации контейнер не управляет дальнейшей судьбой объекта — его уничтожение и другие этапы жизненного цикла должны контролироваться самим клиентским кодом.

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

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

Контейнер Spring не контролирует полный жизненный цикл экземпляров Bean с областью видимости prototype. При таком scope Spring создает новый экземпляр бина каждый раз при запросе, но после создания и инициализации контейнер не управляет дальнейшей судьбой объекта — его уничтожение и другие этапы жизненного цикла должны контролироваться самим клиентским кодом.

Это отличается от синглтон-бинов, для которых Spring управляет полным жизненным циклом, включая вызов методов инициализации и уничтожения.

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

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

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

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

Подробнее