BeanPostProcessor学习

BeanPostProcessor学习

BeanPostProcessor(后置处理器)

BeanPostProcessor的作用,在初始化前后进行一些处理
postProcessBeforeInitialization : 在Bean对象实例化并依赖注入完成后,在执行初始化方法前执行
postProcessAfterInitialization:在Bean对象实例化并依赖注入完成,初始化方法执行后执行
该方法为完成BeanFactory的初始化
BeanPostProcessor学习
进入上面的方法,找到preInstantiateSingletons,该方法是预实例化没有设置懒加载的单例的Bean:
BeanPostProcessor学习
进入preInstantiateSingletons方法找到getBean,再进入找到doGetBean
BeanPostProcessor学习
BeanPostProcessor学习
doGetBean里面有一个createBean方法
BeanPostProcessor学习
进入createBean方法找到doCreateBean:
populateBean方法给属性赋值
进入initializeBean方法
BeanPostProcessor学习
applyBeanPostProcessorsBeforeInitialization:初始化方法前调用
invokeInitMethods:执行初始化方法
applyBeanPostProcessorsAfterInitialization:初始化方法后调用
BeanPostProcessor学习