1. The spring container searches the bean's definition from the XML file and instantiates the bean.
2. Using the dependency injection, spring populates all of the properties as verified in the bean definition.
3. If the bean executes the BeanNameAware interface, the factory calls setBeanName() passing the bean's ID.
4. If the bean executes the BeanFactoryAware interface, the factory calls setBeanFactory(), passing an instance of itself.
5. If there are any BeanPostProcessors associated with the bean, their post ProcessBeforeInitialization() methods will be called.
6. If an init-method is verified for the bean, it will be called.
7. Finally, if there are any BeanPostProcessors associated with the bean, their postProcessAfterInitialization() methods will be called.