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()方法