为什么要读Spring的源码
作为一个Java程序猿,Spring在日常工作中扮演着极其重要的左右,作为Java开源框架中的第一开源框架,Spring在Java EE中有着极为重要的地位。所以,其实不管网上对读Spring框架有什么争议,我认为都是要读一读的,一方面可以更好的理解现在手上代码的实现原理,一方面可以学习程序设计的思想和写代码的一些方法。除此之外,以后说不定要自己写框架呢?或者参与开源框架的开发呢?了解Spring,则能更好的写出优秀的代码来。
搭建环境
需要读Spring的源码,那必须要先下载到Spring的源码,而Spring是开源在GitHub上的,并且基于Gradle来构建,所以要看Spring源码,就必须有GitHub和Gradle。
由于我是mac,所以我就使用brew来安装了(当然,我本来就有这两个软件…逃)
1 | 安装git |
GitHub的话,mac还有他的一个桌面App可以用,可以去下载下来:
图标长这样。
接着就可以去下载Spring了。
1 | 首先先给要下载的Spring源码创建一个文件夹 |
很快,就会发现read_spring_code文件夹下又多了个文件夹,叫Spring-framework,而这里面就是Spring的源码
编译Spring源码
但是这里的源码并不能直接使用IDE打开,需要编译后我们才可以用IDE去编辑和调试。首先打开README.md,里面告诉了你不同的IDE如何编译。
在README.md中我们找到了
实际上,观察的比较仔细的人就会发现,我们刚刚的文件夹中,就存在着CONTRIBUTING.md和另外两个markdown文档,分别是import-into-eclipse.md和import-into-idea.md
由于我这里使用的是IDEA,所以我就根据import-into-idea.md中的步骤来:
- 预编译
spring-oxm
模块./gradlew :spring-oxm:compileTestJava
- 导入到IDEA (File -> New -> Project from Existing Sources -> 到Spring-framework那个文件夹 -> 选择build.gradle)
- 排除
spring-aspects
模块
导入到IDEA的时候,会出现一个框,直接点OK就好了,然后就是等待…
等到Build结束后,把spring-aspects
模块排除,就大功告成了