Spring middle
Что такое Жизненный цикл бина?
Ответ
BeanDefinition → инстанцирование → DI → Aware-интерфейсы → BPP.postProcessBefore → @PostConstruct → InitializingBean → init-method → BPP.postProcessAfter (здесь оборачивание в прокси, AOP) → ГОТОВ → @PreDestroy → DisposableBean → destroy-method.
Разбор: Корректный порядок: создание экземпляра → внедрение зависимостей → Aware-интерфейсы → BPP.postProcessBeforeInitialization → @PostConstruct → InitializingBean.afterPropertiesSet → init-method → BPP.postProcessAfterInitialization → бин готов; при уничтожении @PreDestroy → DisposableBean.destroy → destroy-method. Ловушки: DI всегда раньше инициализации, @PostConstruct/@PreDestroy идут раньше соответствующих интерфейсных методов, а именно postProcessAfterInitialization оборачивает бин в прокси (AOP).
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.