1. 实例化:Spring对bean 进行实例化;post
2. 填充属性:Spring将值和bean 的引用注入到 bean 对应的属性中;spa
3. 若是bean 实现了 BeanNameAware接口,Spring将bean的ID传递给setBean-Name()方法;接口
4. 若是bean实现了 BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将BeanFactory 容器实例传入;生命周期
5. 若是 bean 实现了 ApplicationContextAware 接口,Spring 将调用setApplicationContext()方法,将bean所在的应用上下文的引用传人进来;it
6. 前置处理器:若是bean 实现了 BeanPostProcessor接口,Spring 将调用它们的 post-ProcessBeforeInitialization()方法;io
7. 若是 bean实现了 InitializingBean接口,Spring 将调用它们的 after-PropertiesSet()方法。相似地,若是bean使用init-method声明了初始化方法,该方法也会被调用;容器
8. 后置处理器:若是 bean 实现了 BeanPostProcessor接口,Spring 将调用它们的 post-ProcessAfterInitialization()方法;sso
9. 此时,bean 已经准备就绪,能够被应用程序使用了,它们将一直驻留在应用上下文中,直到该应用上下文被销毁;引用
10. 销毁:若是bean实现了 DisposableBean接口,Spring将调用它的destroy()接口方法。一样,若是bean使用destroy-method声明了销毁方法,该方法也会被调用。程序