Spring源码解析3-beanFactoryPostProcessor的执行

refresh()中的invokeBeanFactoryPostProcessors(beanFactory)

Spring源码解析3-beanFactoryPostProcessor的执行_第1张图片

invokeBeanFactoryPostProcessors(),实例化并且调用所有已经注册了的beanFactoryPostProcessor,遵循指明的顺序

Spring源码解析3-beanFactoryPostProcessor的执行_第2张图片

PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(),获取到当前应用程序上下文的beanFactoryPostProcessors变量的值,并且实例化调用执行所有已经注册的beanFactoryPostProcessor,通过getBeanFactoryPostProcessors()来获取已经注册的BFPP

invokeBeanFactoryPostProcessors()执行流程:

外部集合: getBeanFactoryPostProcessors()获取已经注册的BFPP

PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(beanFactory, getBeanFactoryPostProcessors())

子类:BeanDefinitionRegistryPostProcessor增强的是BeanDefinition,自己有postProcessBeanDefinitionRegistry()方法,也有父类的postProcessBeanFactory()方法

父类:BeanFactoryPostProcessor增强的是BeanFactory里面所有的对象,postProcessBeanFactory()方法

你可能感兴趣的:(源码系列,java,spring)