Spring4.3.12源码阅读系列:1-环境搭建

来源:互联网 发布:淘宝陆战吉姆 编辑:程序博客网 时间:2024/06/05 23:51

学习任务

近期想增加部分源码阅读经验,提高自己在造轮子方面的实力,增长些在设计模式应用方面的编码能力,以及怀着向大佬们膜拜的心情,开始有计划地阅读Spring源码

前期准备

以下几项准备事项,算是基本的日常开发环境,就算没有,也是动动手很快安装好的,这里就不啰嗦详细记录了。

若安装存在困难的,可以尝试百度解决:请相信自己可以做到的!

  • JDK 1.8 安装及其环境配置(略)
  • Eclipse Mars 2 的安装(略)
  • Git客户端安装(略)
  • Gradle 安装及其环境变量配置(略)

搭建过程

1. 下载源码

访问 spring-framework 项目官方源码网站,查看版本Release日志,选定比较稳定合适的版本来分析学习:

Spring源码的git地址:
https://github.com/spring-projects/spring-framework

Spring Release版本:
https://github.com/spring-projects/spring-framework/releases

本文选取最近发布的:v4.3.12,进行后续的源码阅读:

# 获取源码cd d:\Programs\spring\spring-srcgit clone https://github.com/spring-projects/spring-framework.git# 根据网速,上面这一步可能相当慢# 查看远程分支git branch -r# 创建切换本地分支git checkout -b 4.3.x  origin/4.3.xgit pull

git checkout

2. 导入Eclipse

这样下载后的源码,并不可以直接导入Eclipse中使用,还需要将源码转化为Eclipse项目后,才可以导入。

转换命令是:

cd spring-frameworkgradle cleanidea eclipse# gradle 转换时,可能出错,但作者一次就过了,所以,只能略略略地不好意思啦

当然,也可以不用这样转换所有的spring项目,而只是转换某个子项目;本文采用一次转换全部子项目的做法。

转换成功后,当然就是按部就班地启动Eclipse然后导入了:

Import -> Existing Project … -> Select Root Directory -> check Option: Search for nested projects -> Finish

3. 解决项目依赖错误

spring源码项目导入后,会首先遇到项目依赖错误的问题,我遇到的存在依赖问题的子项目有:

  • spring-core
  • spring-beans-groovy
  • spring-web
  • spring-oxm
  • spring-test
  • … …

解决办法:
step 1:打开项目的属性页面,找到构建路径项(build path),查看是否缺少jar包依赖,定位到子项目,然后gradle构建之;

在解决spring-core的依赖问题时,就是需要这样做:

cd spring-coregradle build

step 2:按step 1能解决spring-core,spring-oxm等子项目的依赖问题,但spring-beans-groovy依然会存在问题。此时,打开报错的代码,根据出错提示,setup project,添加项目依赖:spring-beans,问题得到解决;

如果依旧得不到解决,可以在build path -> libraries 页面中,添加缺少的依赖jar,jar包一般位于子项目的build\libs下;

其它子项目类似。

4. 解决源码错误

按照上一步操作后,依然还有部分子项目存在错误;打开报错的代码,发现基本上是test项目中的报错问题,根据报错提示的推荐,能解决问题;

我遇到的情况基本上是:

  1. Mock类中,存在未实现的接口方法; # 增加空白的实现方法可解决报错;
  2. TestCase中,import语句造成的方法名模糊; # 重新组织导包语句可以解决之;

到此,源码阅读环境搭建完成!

开始艰苦的源码阅读之路!加油!