先总结: 该方法通过指定顺序, 遍历调用各种实现了BeanDefinitionRegistryPostProcessor接口或BeanFactoryPostProcessor接口, 的beanFactory后处理器
注: BeanDefinitionRegistryPostProcessor接口继承了BeanFactoryPostProcessor接口
调用顺序:
1.先调用已经提前放入ApplicationContext应用程序上下文beanFactoryPostProcessors属性中的实现了BeanDefinitionRegistryPostProcessor接口的postProcessBeanDefinitionRegistry方法
2.按照优先级调用实现了PriorityOrdered接口(有PriorityOrdered注解)的BeanDefinitionRegistryPostProcessor -> postProcessBeanDefinitionRegistry方法
3.按照优先级调用实现了Ordered接口(有Ordered注解)的BeanDefinitionRegistryPostProcessor -> postProcessBeanDefinitionRegistry方法
4.最后,调用所有剩下的BeanDefinitionRegistryPostProcessors -> postProcessBeanDefinitionRegistry方法
5.按照上面的顺序调用BeanDefinitionRegistryPostProcessors -> postProcessBeanFactory方法
6.调用已经提前放入ApplicationContext应用程序上下文中实现了BeanFactoryPostProcessor接口的postProcessBeanFactory方法
7.按照优先级调用实现了PriorityOrdered接口(有PriorityOrdered注解)的BeanFactoryPostProcessor-> postProcessBeanFactory方法
8.按照优先级调用实现了Ordered接口(有Ordered注解)的BeanFactoryPostProcessor-> postProcessBeanFactory方法
9.最后,调用所有剩下的BeanFactoryPostProcessor-> postProcessBeanFactory方法
调用总结:
1.优先调用实现BeanDefinitionRegistryPostProcessor接口的, 后调用实现BeanFactoryPostProcessor接口的
2. 优先提前放入ApplicationContext应用程序上下文的, 后调用实现了PriorityOrdered接口的, 再调用实现了Ordered接口的, 最后调用其它的
标签:调用,beanFactory,postProcessBeanFactory,BeanFactoryPostProcessor,详解,接口,方法,invokeBe From: https://www.cnblogs.com/superpiter/p/18047034