1.bfpp
实例化ConfigurationClassPostProcessor(完成对诸多注解的扫描工作,如@component、@Import、@ComponentScan、@Configuration等)
ConfigurationClassPostProcessor implements BeanDefinitionRegistryPostProcessor
public interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor
2. bpp
CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBeanPostProcessor
public class InitDestroyAnnotationBeanPostProcessor
implements DestructionAwareBeanPostProcessor, MergedBeanDefinitionPostProcessor
public interface DestructionAwareBeanPostProcessor extends BeanPostProcessor
========applyMergedBeanDefinitionPostProcessors(mbd, beanType, beanName);的方法完成对@Autowired、@Value、@Resouce的扫描工作
在AbstractAutowireCapableBeanFactory的populateBean(...)方法,
for (BeanPostProcessor bp : getBeanPostProcessors()){
.....
ibp.postProcessProperties(pvs, bw.getWrappedInstance()
....
}
完成注入
文章详细阐述了Spring框架中ConfigurationClassPostProcessor如何处理@Configuration等注解进行扫描,以及BeanPostProcessor如CommonAnnotationBeanPostProcessor在@Autowired等注解处理中的作用,特别提到了AbstractAutowireCapableBeanFactory的populateBean方法中如何进行属性注入。
647

被折叠的 条评论
为什么被折叠?



