1. Инстанцирование объекта. Техническое начало жизни бина, работа конструктора его класса;
2. Установка свойств из конфигурации бина, внедрение зависимостей;
3. Нотификация aware-интерфейсов.
BeanNameAware, BeanFactoryAware и другие. Мы уже писали о таких интерфейсах ранее. Технически, выполняется системными подтипами BeanPostProcessor, и совпадает с шагом 4;4. Пре-инициализация – метод
postProcessBeforeInitialization() интерфейса BeanPostProcessor;5. Инициализация. Разные способы применяются в таком порядке:
• Метод бина с аннотацией
@PostConstruct из стандарта JSR-250 (рекомендуемый способ);• Метод
afterPropertiesSet() бина под интерфейсом InitializingBean;• Init-метод. Для отдельного бина его имя устанавливается в параметре определения
initMethod. В xml-конфигурации можно установить для всех бинов сразу, с помощью default-init-method;6. Пост-инициализация – метод
postProcessAfterInitialization() интерфейса BeanPostProcessor.