20 lines
1.1 KiB
Markdown
20 lines
1.1 KiB
Markdown
|
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生命周期。
|
|||
|
|