一、外部beanFactoryPostProcessors
如果是BeanDefinitionRegistryPostProcessor 实现类,立即执行,然后 add registryProcessors
如果不是 add regularPostProcessors
二、实现BeanDefinitionRegistryPostProcessor
查看其是否实现了PriorityOrdered接口
实现了:currentRegistryProcessors 加入到currentRegistryProcessors 且加入processedBeans(将要执行)
然后将其加入registryProcessors, 执行currentRegistryProcessors 子类实现方法()
再次循环 判断其实现Ordered类,且没有被执行过,加入currentRegistryProcessors 且加入processedBeans(将要执行)
然后将其加入registryProcessors, 执行currentRegistryProcessors 子类实现方法()
然后循环遍历剩余的BeanDefinitionRegistryPostProcessor实现类,因为其可能会生成新的BeanDefinitionRegistryPostProcessor实现类,所以双循环
然后执行registryProcessors 和 regularPostProcessors 的 postProcessBeanFactory 方法
生成新的BeanDefinitionRegistryPostProcessor 能不能实现order接口
三、实现BeanFactoryPostProcessor接口
依次执行 实现PriorityOrdered 实现Ordered , 都没有实现