专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
今天看啥  ›  专栏  ›  ImportNew

一文理解 Spring Bean 异步初始化的实现思路

ImportNew  · 公众号  · Java  · 2024-05-21 09:19
这个话题开始于两年前的一个面试题:Spring 在启动期间会做类扫描,以单例模式放入 IoC。但是 Spring 只是一个个类进行处理,如果为了加速,我们取消 Spring 自带的类扫描功能,用写代码的多线程方式并行进行处理,这种方案可行吗?为什么?当时我也不知道问题的答案,所以我尝试着去寻找。但是在找答案之前,我先大胆的猜一个答案:不可以。为什么?因为当时我看的是 Spring 5.x 版本的源码,在这个版本里面还是单线程处理 Bean。对于 Spring 这种使用规模如此之大的开源框架来说,如果能支持 Bean 的异步多线程加载的话,肯定老早就支持了。所以我先盲猜一个:不可以。最后我找到了这样的一个 issue 链接:https://github.com/spring-projects/spring-framework/issues/13410题目翻译过来是“在启动期间并行的处理 Bean 的初始化”,紧扣我们的面试题。注意看这个 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照