BeanPostProcessor家庭成员
BeanPostProcessor主要用于在bean的初始化前后,添加一些自定义逻辑
在AbstractAutowireCapableBeanFactory类中initializeBean方法会调用
InstantiationAwareBeanPostProcessor接口的主要作用是在bean的实例化过程中给bean加上其他的逻辑(作用于bean的实例化,跟初始化是有区别的)
在AbstractAutowireCapableBeanFactory类执行Object beanInstance = doCreateBean(beanName, mbdToUse, args); 之前调用
注意在doCreateBean的populateBean()方法内,会调用postProcessAfterInstantiation()方法,此时我们可以加入自定义的逻辑来判断bean是否需要被依赖注入
同样 在populateBean()方法内部会调用postProcessPropertyValues()对属性进行依赖注入
SmartInstantiationAwareBeanPostProcessor接口主要实在框架内部使用,其中getEarlyBeanReference比较重要,调用点如下