Spring bean 生命周期 源码:AbstractAutowireCapableBeanFactory.doCreateBean 1. 实例化bean 2. 调用bean的set方法给属性赋值 3. 检查/执行BeanNameAware接口 setName (可选,实现BeanNameAware) 检查/执行BeanClassLoaderAware接口 setBeanClassLoader(可选,实现BeanClassLoaderAware) 检查/执行BeanFactoryAware接口 setBeanFactory(可选,实现BeanFactoryAware) 4. 执行bean后处理器的before (可选,自己实现BeanPostProcessor) 5. 检查/执行InitializingBean接口afterPropertiesSet (可选,实现InitializingBean) 6. 初始化bean (可选,调用自定义init方法) 7. 执行bean后处理器的after(可选,自己实现BeanPostProcessor) 8. 使用bean 9. 检查/执行DisposableBean接口destroy (可选,实现DisposableBean) 10. 销毁bean (可选,在容器关闭时调用自定义destroy方法) spring只对scope为singleton的实例进行完整的生命周期管理,如果是prototype只负责到初始化完毕。一旦对象被客户端获取(getBean),spring不再负责该bean生命周期。