【Spring源码】第一步:开始读源码–基于idea

作者: Weidan 分类: Spring源码 发布时间: 2019-12-03

心心想念很久读 Spring 源码,但是一直没有坚持下去。也看了一些别人怎么读源码的教程,然而有一天忽然在上班的公交上来了灵感,最方便的工具就在我手上啊!

对,就是那个叫 idea 的编码工具!

看类层次图

有两种方式,一种是直接生成 UML 图:

在想要看的类上面,右键选择这里(当然建议记住这里的快捷键),就可以出现 idea 绘制好的 UML 图:

image-20191202145113170

image-20191202144945669

然后,如果想看其中某个节点的源码,比如 MessageSource 那么只要鼠标选中这个节点,然后按 F4 即可进入类源码:

image-20191202145300345

好,这是第一种方法,我也比较喜欢这种方式。那么第二种方法是让 idea 出现树形的结构,然后可以直接看层次,但是我感觉单纯的树形并不能很好的表达 继承实现,不过还是说一下吧:

image-20191202145533499

就是这个,osx 系统使用的是 ^ + H,可以看看自己电脑是哪个快捷键,方便快速调用出来。

运行轨迹图

这个问题尼玛就是困扰我没有去读源码的动力,但是,在 Debug 窗口,他就是提供了,悔恨自己没早点发现!!!

很多时候,我们在源码打了断点,但是因为跳来跳去,然后后面忘了,忘了在哪个地方进来了,然后就稀里糊涂的出去了。

然而其实在这里,是记录了 Debug 走过的函数的:

image-20191202150051681

只要用鼠标点击函数名字,就可以去到这个函数所在的代码块,特么太香了!!!

导入Spring源码

其实这一步在源码下的 import-into-idea.md 文件已经有提及到了,不过还是简单说说吧:

下载完源码,先不要急着导入 idea,而是在代码所在的目录中运行这个命令:

./gradlew :spring-oxm:compileTestJava

我估计是这个项目会先安装一些代码所需要的依赖工程(这些工程就在源码里边),让 idea 打开的时候不至于扫描的时候报错。

然后再导入源码到 idea 中,这时候大概的十多分钟的索引+下依赖,就可以试着运行 Spring 提供的测试用例来简单的测试环境。

image-20191202150740827

通过了大概就是这样吧,绿色的小沟子√。