Расскажите о lifecycle singleton bean в Spring.

В обычном цикле Spring создаёт экземпляр, внедряет зависимости, выполняет aware/post-processors и init callbacks, затем предоставляет готовый bean; при закрытии контекста вызывается destruction.

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

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

В обычном цикле Spring создаёт экземпляр, внедряет зависимости, выполняет aware/post-processors и init callbacks, затем предоставляет готовый bean; при закрытии контекста вызывается destruction.

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

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

В обычном цикле Spring создаёт экземпляр, внедряет зависимости, выполняет aware/post-processors и init callbacks, затем предоставляет готовый bean; при закрытии контекста вызывается destruction.

Для стандартного singleton init-фаза включает обработку @PostConstruct, afterPropertiesSet() и настроенного init-method, затем postProcessAfterInitialization, где часто появляется proxy. Singleton означает один экземпляр на bean definition в контейнере, не один на всю JVM. Lazy-бин создаётся при первом запросе, обычные singleton часто — при запуске context. При корректном shutdown выполняются @PreDestroy/destroy callbacks. Наличие singleton не делает изменяемые поля автоматически потокобезопасными.

Источник: docs.spring.io.

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

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

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

Подробнее