一. bean生命周期图
- https://javadoop.com/post/spring-ioc
简述:
- 通过synchronized加锁进行初始化容器
- 加载xml以及注解配置扫描bean定义信息到BeanDefinitionRegistry容器中
- 调用实现自Aware扩展接口的子类对应钩子函数
- 扫描所有的BeanPostProcessor子类实现, 注册到容器集合中
- Bean构造函数实例化
- 解析BeanPostProcessor, 通过动态代理对Bean进行增强.
- 对于实现了InitializingBean, DisposableBean接口的各种Bean进行模板方法处理
- Bean初始化完之后, 通过各种EventListener进行事件通知. (监听者完成自己感兴趣的事情)
- Bean初始化完成.
- 容器触发销毁, 则调用Bean指定的destory钩子函数
- 如果容器初始化发生异常, 对已初始化的部分数据进行清理和销毁.
二. 讲解生命周期过程中的各个核心类作用,扩展示例
三. 总结