Контейнер Spring не контролирует полный жизненный цикл экземпляров Bean с областью видимости prototype. При таком scope Spring создает новый экземпляр бина каждый раз при запросе, но после создания и инициализации контейнер не управляет дальнейшей судьбой объекта — его уничтожение и другие этапы жизненного цикла должны контролироваться самим клиентским кодом.
Контролирует ли контейнер Spring жизненный цикл экземпляра Bean, объявленного с диапазоном scope='prototype'?
Контейнер Spring не контролирует полный жизненный цикл экземпляров Bean с областью видимости prototype.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Контейнер Spring не контролирует полный жизненный цикл экземпляров Bean с областью видимости prototype. При таком scope Spring создает новый экземпляр бина каждый раз при запросе, но после создания и инициализации контейнер не управляет дальнейшей судьбой объекта — его уничтожение и другие этапы жизненного цикла должны контролироваться самим клиентским кодом.
Это отличается от синглтон-бинов, для которых Spring управляет полным жизненным циклом, включая вызов методов инициализации и уничтожения.
Если нужно управлять жизненным циклом prototype-бина, можно использовать интерфейс DisposableBean и вручную вызывать методы очистки, либо применять кастомные решения.