40、扩展原理-BeanDefinitionRegistryPostProcessor

40、扩展原理-BeanDefinitionRegistryPostProcessor

  • BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor
  • postProcessBeanDefinitionRegistry();
  • 在所有bean定义信息将要被加载,bean实例还未创建的;
  • 优先于BeanFactoryPostProcessor执行;
  • 利用BeanDefinitionRegistryPostProcessor给容器中再额外添加一些组件;

原理

1)、ioc创建对象
2)、refresh()-》invokeBeanFactoryPostProcessors(beanFactory);
3)、从容器中获取到所有的BeanDefinitionRegistryPostProcessor组件。
1、依次触发所有的postProcessBeanDefinitionRegistry()方法
2、再来触发postProcessBeanFactory()方法BeanFactoryPostProcessor;
4)、再来从容器中找到BeanFactoryPostProcessor组件;然后依次触发postProcessBeanFactory()方法
原文地址:https://www.cnblogs.com/Grand-Jon/p/10061956.html