以下文章字数大约1600字,阅读时间须要15分钟左右。java
前言:git
若是提起Spring框架,可能你会很是熟悉,曾经或者如今都使用过。github
可是,可能不多人阅读过Spring源码。spring
最近也在思考,若是做为开发人员来说,什么才是其核心竞争力。架构
我的感受,随着工做年龄的增加,对java底层原理了解越透彻对于我的来说越重要。框架
了解底层原理,清楚架构逻辑实现这远比会使用架构更具核心竞争力。由于,就算一个新框架东西不熟悉,你仔细看看用用也会熟练使用了,别人也是同样很快掌握。eclipse
读优秀框架的源码就是其中一个比较有效提高自个人途径,而,spring源码是其中比较好的方式之一。ide
准备软件工具
一、安装git或者从Github上面下载源码到本地,网址为:https://github.com/spring-projects/spring-framework/源码分析
本人版本为5.1.2.
二、安装gradle。下载地址:https://gradle.org/releases/
gradle的做用为将源码spring的项目转成eclipse可用的工程。
导入源码以及搭建环境
一、下载源码
源码从github上下载后,解压到本地便可。可仔细观察相关源码,此时eclipse等工具还不能导入,每一个项目中没有eclipse可识别的.classpath和.project文件。源码须要使用gradle工具进行转换。
如图为下载后spring源码内容:
二、配置gradle
将gradle下载后,解压安装。须要配置环境变量。自行百度。
gradle安装成功的标志是在cmd中输入命令 gradle -v 显示内容。本人版本时4.9。
如图:
三、源码转换
由于源码较多,这里不建议一块儿将全部项目统一转换。本人采用部分转换的方法,即用到哪部分转换哪部分的原理。
对于spring源码第一部分先分析bean的机制,因此这里只转换spring-beans项目以及其依赖的spring-core和spring-jcl项目。
这里以转换spring-beans项目为例。
打开cmd控制台,切换到当前文件路径下,执行命令:gradle cleanIdea eclipse
输出日志以下:
转换完成后,对应项目中生成了eclipse工程中必须的.classpath与.project文件。
下面就能够将相关文件进行导入eclipse的操做了。
填坑操做
一、相关关联项目导入后,后看见相关依然报错:
即:spring-cglib-repack-3.2.8.jar和spring-objenesis-repack-3.0.1.jar不存在
解决方法:
在spring-framework目录下执行gradle cglibRepackJa和gradle objenesisRepackJar命令,会在Spring-frameworkspring-coreuildlibs目录下生成相关jar。
二、可能代码中发现以下错误:GroovyDynamicElementReader类不存在,是由于eclipse没有安装groovy插件。
在eclipse的 Help -> Install New Software 中,添加groovy的下载链接
http://dist.springsource.org/milestone/GRECLIPSE/e4.4/
而后全选后,开始下载,下载完后,重启eclipse,而后clean一下项目就搞定了。
三、其余
项目还须要跟jdk匹配,这点须要特别注意。
至此,将spring源码下载到本地并适配到开发工具中了。
总结:Spring源码分析文件相关内容会陆续更新,欢迎关注。
已上内容,纯属一家之言,因本人能力通常,见识有限,若有问题,请不吝指正,感谢。