13年过去了,Spring官方竟然真的支持Bean的异步初始化了!

你好呀,我是歪歪。
两年前我曾经发布过这样的一篇文章《我是真没想到,这个面试题居然从11年前就开始讨论了,而官方今年才表态。》
文章主要就是由这个面试题引起:

Spring 在启动期间会做类扫描,以单例模式放入 ioc。但是 spring 只是一个个类进行处理,如果为了加速,我们取消 spring 自带的类扫描功能,用写代码的多线程方式并行进行处理,这种方案可行吗?为什么?

当时我也不知道问题的答案,所以我尝试着去寻找。
但是在找答案之前,我先大胆的猜一个答案:不可以。
为什么?
因为当时我看的是 Spring 5.x 版本的源码,在这个版本里面还是单线程处理 Bean。
对于 Spring 这种使用规模如此之大的开源框架来说,如果能支持 Bean 的异步多线程加载的话,肯定老早就支持了。
所以我先盲猜一个:不可以。
最后我找到了这样的一个 issue 链接:

https://github.com/spring-projects/spring-framework/issues/13410

题目翻译过来是“在启动期间并行的处理 Bean 的初始化”,紧扣我们的面试题。
注意看这个......

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...