Жизненный цикл Spring Bean состоит из четырёх основных этапов: создание экземпляра, конфигурация, инициализация и уничтожение. Понимание этого жизненного цикла необходимо для эффективного управления бинами в Spring-контейнере.
Spring начинает с чтения определения бина из конфигурационных файлов (обычно XML) и создаёт экземпляр бина. Затем контейнер заполняет все свойства бина в соответствии с конфигурацией.
Spring уведомляет бин о его контексте через специальные интерфейсы:
BeanNameAware, Spring вызывает setBeanName() для передачи идентификатора бинаBeanFactoryAware, Spring вызывает setBeanFactory() для предоставления доступа к контейнеруПосле этого контейнер выполняет шаги постобработки:
postProcessBeforeInitialization() вызывается на всех зарегистрированных BeanPostProcessorsafterPropertiesSet(), если реализован InitializingBean)postProcessAfterInitialization() вызывается на всех зарегистрированных BeanPostProcessorsНа этом этапе бин полностью инициализирован и готов к использованию приложением.
Когда Spring-контейнер завершает работу, бины входят в фазу уничтожения. Если бин реализует DisposableBean, Spring автоматически вызывает его метод destroy(). Кроме того, ты можешь настроить пользовательские методы уничтожения с помощью атрибута destroy-method в определениях бина.
Этот жизненный цикл обеспечивает правильное управление ресурсами и позволяет разработчикам встраиваться в определённые этапы для реализации логики инициализации и очистки.
Метод postProcessBeforeInitialization() вызывается на всех зарегистрированных BeanPostProcessors после того, как выполнены пользовательские методы инициализации, такие как afterPropertiesSet().
Новый — ещё не проверен сообществом
Вы