前两篇文章讲了obtainFreshBeanFactory()方法,该方法主要是进行xml解析并封装成BeanDefinition,今天我们接着refresh()核心方法往下看invokeBeanFactoryPostProcessor()方法,该方法主要完成对实现了BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor接口实现类的调用。BeanDefinitionRegistryPostProcessor接口继承自BeanFactoryPostProcessor接口。
invokeBeanFactoryPostProcessor()方法主要就是完成对实现了BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessror接口的调用,首先从BeanFactory中获取相应类型的beanName数组,然后遍历数组,判断是否实两个现排序接口,然后进行实例化,加入容器中,然后排序,注册,进行方法调用。