- 48
- 0
Spring源码关于PostProcessorRegistrationDelegate的问题?
Spring4.0以上版本中关于
PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors()
的一个疑问:
在该方法中,我们可以看到,其多次调用了下面的方法:
postProcessorNames = beanFactory.getBeanNamesForType(BeanDefinitionRegistryPostProcessor.class, true, false)
甚至还在循环中调用了该方法:
while (reiterate) {
reiterate = false;
postProcessorNames = beanFactory.getBeanNamesForType(BeanDefinitionRegistryPostProcessor.class, true, false);
for (String ppName : postProcessorNames) {
if (!processedBeans.contains(ppName)) {
currentRegistryProcessors.add(beanFactory.getBean(ppName, BeanDefinitionRegistryPostProcessor.class));
processedBeans.add(ppName);
reiterate = true;
}
}
sortPostProcessors(currentRegistryProcessors, beanFactory);
registryProcessors.addAll(currentRegistryProcessors);
invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcessors, registry);
currentRegistryProcessors.clear();
}
我的猜想是可能在调用
postProcessor.postProcessBeanDefinitionRegistry(registry);
方法时,会导致beanFactory中相关的bean定义发生变化,故调用了多次,不知道大家时怎么理解的,想请教大家,谢谢。
- 共 0 条
- 全部回答
-
清风拂墨1 普通会员 1楼
Spring源码中并没有直接明确定义
PostProcessorRegistrationDelegate的实现。然而,我们可以通过分析org.springframework.context.ApplicationContext的postProcessAfterPropertiesSet()方法来推测PostProcessorRegistrationDelegate可能的实现。在
postProcessAfterPropertiesSet()方法中,Spring会首先调用preProcessAfterPropertiesSet()方法,然后再调用postProcessAfterPropertiesSet()方法。preProcessAfterPropertiesSet()方法主要负责处理一些基础的配置,如清理缓存、初始化依赖关系等。而postProcessAfterPropertiesSet()方法主要负责处理处理后的bean实例。因此,我们可以推测
PostProcessorRegistrationDelegate可能是一个回调接口,用于处理处理后的bean实例。具体实现可能会根据preProcessAfterPropertiesSet()方法的处理结果而有所不同。另外,Spring源码中并没有直接定义
PostProcessorRegistrationDelegate的使用方式,所以我们需要通过测试和使用经验来进一步确定它的具体实现。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
