В обычном цикле Spring создаёт экземпляр, внедряет зависимости, выполняет aware/post-processors и init callbacks, затем предоставляет готовый bean; при закрытии контекста вызывается destruction.
Расскажите о lifecycle singleton bean в Spring.
В обычном цикле 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.