BeanPostProcessor是接口,后置处理器,翻译成 增强器更合适
定义一个实体类,实现该接口。并debug执行看执行的所有方法
调用的所有方法
重点方法:
该处主要介绍两个方法
1 populateBean(beanName, mbd, instanceWrapper); ---- 给对象属性赋值操作
2 exposedObject = initializeBean(beanName, exposedObject, mbd); ---- 开始调用初始化方法
3 进入exposedObject = initializeBean(beanName, exposedObject, mbd); 方法后:
wrappedBean = applyBeanPostProcessorsBeforeInitialization(wrappedBean, beanName);
-- BeanPostProcessor的前置(before)增强
invokeInitMethods(beanName, wrappedBean, mbd); -- 初始化方法
wrappedBean = applyBeanPostProcessorsAfterInitialization(wrappedBean, beanName);
-- BeanPostProcessor的后置(after)增强
先后执行了三个方法:
看一下bean的生命周期,符合中间四条。
至于中间四条的 initialization,init-method。在 BeanPostProcessor的方法接口上注释,可以看一下。
初始化bean的方式,可以参考上一条博客: