BeanDefinitionRegistryPostProcessor
执行时机:在所有bean定义信息将要被加载,bean实例还未创建时;
它优先于BeanFactoryPostProcessor执行,利用BeanDefinitionRegistryPostProcessor给容器中再额外添加一些组件;
原理:
1)IOC创建对象;
2)refresh()-->invokeBeanFactoryPostProcessors(BeanFactory);
3)从容器中获取到所有的BeanDefinitionregistryPostProcessor组件。
3.1)依次触发所有的postProcessBeanDefinitionRegistry()方法;
3.2)再来触发postProcessBeanFactory ;
4)再来从容器中找到beanFactoryPostProcessor组件,然后依次触发;