1. 程式人生 > 其它 >spring原始碼之BeanDefinitionRegistryPostProcessor介面的呼叫-invokeBeanFactoryPostProcessor()

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陣列,然後遍歷陣列,判斷是否實兩個現排序介面,然後進行例項化,加入容器中,然後排序,註冊,進行方法呼叫。