执行 BeanFactoryPostProcess

  1. invokeBeanFactoryPostProcessors(beanFactory);

执行流程:

  1. 执行通过 ApplicationContext 添加进来的 BeanDefinitionRegistryPostProcessorpostPorcessBeanDefinitionRegistry() 方法

  2. 执行 BeanFactory 中实现了 PriorityOrdered 接口的 BeanDefinitionRegistryPostProcessorpostPorcessBeanDefinitionRegistry() 方法

  3. 执行 BeanFactory 中实现了 Ordered 接口的 BeanDefinitionRegistryPostProcessorpostPorcessBeanDefinitionRegistry() 方法
  4. 执行 BeanFactory 中其他的 BeanDefinitionRegistryPostProcessorpostPorcessBeanDefinitionRegistry() 方法

  5. 执行上述所有的 BeanDefinitionRegistryPostProcessorpostProcessBeanFactory() 方法

  6. 执行通过 ApplicationContext 添加进来的 BeanDefinitionPostProcessorpostProcessBeanFactory() 方法

  7. 执行 BeanFactory 中实现了 PriorityOrdered 接口的 BeanFactoryPostProcessorpostProcessBeanFactory() 方法
  8. 执行 BeanFactory 中实现了 Ordered 接口的 BeanFactoryPostProcessorpostProcessBeanFactory() 方法

  9. 执行 BeanFactory 中其他的 BeanFactoryPostProcessorpostProcessBeanFactory() 方法

Spring 启动流程.png