执行BeanFactoryPostProcessor的流程图
2022-11-20 22:26:01 5 举报
执行BeanFactoryPostProcessor的流程图
作者其他创作
大纲/内容
7、获取当前容器中所有实现了BDRPP接口的对象,如果没有实现PriorityOrdered接口,也没有实现Ordered接口
进行类型转换,执行BDRPP接口中的方法postProcessBeanDefinitionRegistry
5、获取当前容器中所有实现了BDRPP接口的对象
开始处理
跟上述流程一样
添加具体的对象到currentRegistryProcessors集合中并且将当前BDRPP的名字添到processedBeans中
1、创建一个空的集合,用来存储已经执行过的BFPPSet<String> processedBeans = new HashSet< >()
遍历每一个元素,判断是否是BeanDefinitionRegistryPostProcessor
是
9、执行所有regularProcessors中对象的postProcessBeanFactory接口的方法
上述主要是BDRPP接口方法的执行下面是BFPP接口方法的执行
创建两个空的集合对象,用来分类存储BFPP和BDRPPList<BeanFactoryPostProcessor> regularPostProcessors = new ArrayList<();List<BeanDefinitionRegistryPostProcessor> registryProcessors = new ArrayList<>():
否
1、将currentRegistryProcesssors进行排序操作
放到regularPostprocessors集合中
调用BFPP中的postProcessBeanFactory方法
3、执行BDRPP接口中的方法invokeBeanDefinitionRegistryPostProcessors
4、创建存放BDRPP的集合对象,用来存储当前正在执行处理过程中的BDRPPList<BeanDefinitionRegistryPostProcessor> currentRegistryProcessors =new ArrayList<()
6、获取当前容器中所有实现了BDRPP接口的对象,并且判断是否实现了Ordered接口
3、处理用户传进来的自定义的BPFF
4、清空当前的currentRegistryProcessors
2.判断当前beanFactory是否是BeanDefinitionRegistry
优先处理实现了PriorityOrdered接口的BFPP对象,然后是Ordered接口的对象,最后是两者都没有实现的对象
2、将currentRegistryProcesssors集合中的值合并到registryProcessors中
8、执行所有registryProessors中对象的postProcessBeanFactory接口的方法
判断是否实现了PriorityOrdered接口
0 条评论
下一页