好早就想读一读Spring源码了,那为什么没读呢?
- 因为工作忙,抽不出时间
- Spring项目庞大,不知从何入手
- 不知道为什么要读
在开始正式读Spring源码前先跟自己聊聊这几个问题吧。
1、因为工作忙,抽不出时间?
实事求是的说,你的工作真的忙到抽不出任何的时间读一读源码了吗?并不是吧,工作日晚上不加班的时候可以读一读吧?周末不加班的时候更可以安排些时间读一读吧?就看你学习的欲望够不够强烈,这可能才是问题的本质。
2、Spring项目庞大,不知如何入手?
解决的方法初步梳理了下,其实挺多的,如下:
- 网上百度一搜,可以搜到大量的读Spring源码的文章,就可以找到这个问题的解决方案,如先下载源码编译,然后认识每一个模块,然后从哪一个模块学习起等等。
- 根据自身经验,可以先找一个项目中用的比较多比较熟的Spring相关的功能看起,如@Controller,@Service,@Transtions等等。
- 搭建一个Hello World的Spring项目,然后调试看。
- 买一本《Spring源码深度解析》书,跟着书中知识点介绍来阅读。
3、不知道为什么要读?
就跟造汽车一样,发动机我们买回来直接用不就可以了?有必要拆开发动机了解它是怎么造的吗?不可否认,如果只是组装汽车基本没太大必要,但这就说明Spring源码咱们也就没必要去读了吗?
我的答案是有必要,根据个人理解整理出读Spring源码的意义如下:
- 首先就编程思想而言,写Spring和写应用代码、其它组件是可以相通的,而Spring又作为J2EE经典的框架,读一读是可以更好了解Java编程思想,提高对Java的认识。
- Spring应用到了大量的设计模式,反射,泛型,注解等等,通过读Spring源码,可以更好的了解到这些Java特性,可以学习应用到工作当中去,提升自身代码编写的可用性和拓展性。
- 可以结合官方文档一起学习,学Spring的同时,学会看官方英文文档,不仅可以学好英语还能够同时学学这些好的文档是如何编写的应用到工作当中去。
- Spring源码最直接的收益是”知其然知其所以然“后,再用Spring的时候会更得心应手,并且在碰到Spring相关的问题后,可以通过读源码去快速定位问题,逼格是不是提升了?
- 现在很多大厂对于是否了解Spring的底层原理可是一大加分项,可能读了后就让你找到一份好的工作了。
再来回答上面那个造汽车的例子,如果拆开发动机学习造发动机的原理可以对造汽车有帮助,何乐而不为呢?