The following is the sequence of a bean life cycle in Spring:
Instantiate: First, the Spring container finds the bean’s definition from the XML file and instantiates the bean.
Populate Properties: Using the dependency injection, Spring populates all of the properties as specified in the bean definition.
Set Bean Name: If the bean implements the BeanNameAware interface, then Spring passes the bean’s ID to the setBeanName() method.
Set Bean Factory: If the bean implements the BeanFactoryAware interface, then Spring passes the bean factory to the setBeanFactory() method.
Pre-initialization: It is also called the post-process of the bean. If there are any BeanPostProcessors associated with the bean, then Spring calls the postProcesserBeforeInitialization() method.
Initialize Beans: If the bean implements IntializingBean, its afterPropertySet() method is called. If the bean has the init method declaration, the specified initialization method is called.
Post Initialization: If there are any BeanPostProcessors associated with the bean, their postProcessAfterInitialization() methods will be called.
Ready to Use: Now, the bean is ready to use by the application.
Destroy: If the bean implements DisposableBean, it will call the destroy() method.