5.spring源码之BeanDefinitionRegistryPostProcessor接口的调用-invokeBeanFactoryPostProcessor()
前两篇文章讲了obtainFreshBeanFactory()方法,该方法主要是进行xml解析并封装成BeanDefinition,今天我们接着refresh()核心方法往下看invokeBeanFactoryPostProcessor()方法,该方法主要完成对实现了BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor接口实现类的调用。BeanDefinitionRegistryPostProcessor接口继承自BeanFactoryPostProcessor接口。
1.refresh()方法如下:

2.进入invokeBeanFactoryPostProcessors()方法

3.进入PostProcessorRegistractionDelegate类的invokeBeanFactoryPostProcessors()方法
![]()
![]()
![]()
![]()
![]()
4.完成方法调用


invokeBeanFactoryPostProcessor()方法主要就是完成对实现了BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessror接口的调用,首先从BeanFactory中获取相应类型的beanName数组,然后遍历数组,判断是否实两个现排序接口,然后进行实例化,加入容器中,然后排序,注册,进行方法调用。





浙公网安备 33010602011771号