BeanPostProcessor
在Spring框架中举足轻重,还有很多继承的类。
作用:管理Bean的生命周期:Bean实例化--->Bean初始化--->Bean使用中--->Bean销毁
在Spring 容器初始化的时候就会存在这些类执行的一个先后的问题,今天我们就把这些类的执行先后顺序进行梳理。
1. BeanPostProcessor的分类
BeanPostProcessor
作为顶层接口会有很多的继承接口和实现类,下图就是分类:
如上图所示包括 BeanPostProcessor 在内,一共有五个接口类。分成了三个功能模块。
- Bean实例化这要由InstantiationAwareBeanPostProcessor、SmartInstantiationAwareBeanPostProcessor负责。
- Bean初始化由BeanPostProcessor、MergedBeanDefinitionPostProcessor两个接口负责
- Bean销毁由DestructionAwareBeanPostProcessor接口负责
从分类可以看出来这个五个接口分别对应Bean的三个阶段:实例化、初始化、以及销毁。那么各个阶段里面的执行顺序是怎么样的我们接着往下分析
2. 接口的执行顺序
BeanPostProce