上篇文章介绍了refresh里beanFactory的创建预准备工作,refresh获取到的beanFactory是先刷新创建,在getBeanFactory获取到的,之后再给他配置忽略自动装配的依赖接口,和配置自动装配的组件。
Ioc容器refresh总结(1)--- Spring源码从入门到精通(三十一)
这篇文章主要介绍beanFactory后置处理器如何调用beanFactory:
五、invokeBeanFactoryPostProcessor
BeanFactoryPostProcessor,在beanFactory预准备标准初始化之后执行的,beanFactory的后置处理器。
BeanDefinitionRegistryPostProcessor。
先执行BeanDefinitionRegistryPostProcessor方法。A、先获取所有的beanDefinitionRegistryPostProcessor。B、按接口优先级排序,先执行实现了PriorityOrdered.class的beanDefinitionRegistryPostProcessor,执行postProcessBeanDefinitionRegistry。C、再执行实现了Ordered.class的beanDefinitionRegistryPostProcessor。D、最后一步,执行没有实现任何接口的beanDefinitionRegistryPostProcessor。
在执行beanFactoryPostProcessor方法。A、先获取所有的beanFactoryPostProcessor。B、按接口优先级排序,先执行实现了PriorityOrdered.class的beanFactoryPostProcessor,执行postProcessBeanFactory。C、再执行实现了Ordered.class的beanFactoryPostProcessor。D、最后一步,执行没有实现任何接口的beanFactoryPostProcessor。
这里是用beanFactoryPostProcessor后置处理器调用对象工厂。