第16小节:
遍历得到容器中所有的BeanPostProcessor,挨个执行beforeInitialization
一旦返回null,跳出for循环,不会执行后面的BeanPostProcessor.postProcessors
populateBean(String beanName, RootBeanDefinition mbd, BeanWrapper bw);//给bean进行属性赋值
BeanPostProcessor原理:
initializeBean{
applyBeanPostProcessorsBeforeInitialization{
applyBeanPostProcessorsBeforeInitializationP()
invokeInitmethods()执行自定义初始化
applyBeanPostProcessorsBeforeInstantiation()
}
第17小节:BeanPostProcessors在spring底层的使用:
Bean赋值,注入其他组件,@Autowired,生命周期注解功能,@Async,xxx BeanPostProcessor