spring源码环境安装指南

文章介绍了如何搭建Spring框架的源码环境,包括下载源码、配置gradle、修改源码配置、编译源码以及调试。特别强调了对于不熟悉gradle的程序员,如何从源码的gradle-wrapper.properties和build.gradle文件中进行配置调整,以适应国内的网络环境,如切换到阿里云仓库。文章还提供了源码编译的两种方法,并给出了源码调试的步骤,包括创建gradle模块和添加依赖,以及解决可能遇到的问题。最后,推荐了一个用于阅读源码和定位核心方法的IDEA插件SequenceDiagram。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

作为一个合格的程序员,想要进阶,源码阅读是不可避免的,其中spring的源码是必读之一,但是spring源码环境使用的gradle对一些经常使用maven的程序员来说是比较陌生的,那么接下来我这边文章就可以指导大家很快的将spring源码环境搭建起来,让大家可以愉快的进阶,篇末有彩蛋。

环境准备

  1. IntelliJ IDEA 2019.3.3
  2. gradle
  3. JDK 1.8
  4. Spring Framework源码

安装步骤

这里只关注spring源码下载和gradle安装,默认idea和jdk是已有基础环境

Spring Framework源码下载

1. 下载地址

https://github.com/spring-projects/spring-framework

2. 版本选择

进入到spring源码的git空间,选择你先学习的tags版本即可,一般选择最新的RELEASE版本
在这里插入图片描述

3. 下载源码

点击code中的zip包下载
在这里插入图片描述

gradle安装

1. gradle版本确定

gradle安装版本可以在spring源码的gradle/wrapper/gradle-wrapper.properties中查看
在这里插入图片描述

2. 下载gradle

方法一:
使用gradle-wrapper.properties的distributionUrl可以直接下载对应版本的gradle,注意需要删除https后面的 \ 符号,正确链接:https://services.gradle.org/distributions/gradle-5.6.4-bin.zip,在浏览器中访问该链接,选择对应目录即可安装
方法二:
在浏览器中访问 https://gradle.org/releases/ 选择需要的版本点击下载,这里需要选择binary-only下载即可
在这里插入图片描述

3. gradle 安装

gradle安装比较简单,直接将下载的gradle-5.6.4-bin.zip 包,解压即可,建议解压到一个全英文目录

4. gradle环境配置
  1. 全渠环境变量配置(ps:因为是以前就安装好的gradle,所以大家可以忽略版本
    首先,点击此电脑->右击打开属性->选择环境变量
    在这里插入图片描述
    其次,在系统变量中新建增加GRADLE_HOME,变量值就是上面gradle解压目录
    在这里插入图片描述
    再次,在系统变量中配置GRADE_USER_HOME,这个变量值就是你的gradle本地仓库,这个类似与maven的本地仓库,后续第三方依赖会从远程仓库来下来保存到这个目录
    在这里插入图片描述
    最后,在Path目录中增加%GRADLE_HOME%\bin
    在这里插入图片描述
  2. 可以做下验证,快捷键ctrl+R,输入cmd打开,执行gradle -v,如果能正常展示版本说明gradle安装完成
    在这里插入图片描述

Spring源码编译

spring源码配置修改

这里需要修改一些spring源码中关于gradle的配置,否则,在源码编译过程中,你会遇到很多不可遇见的问题

  1. 修改gradle-wrapper.properties文件中的distributionUrl为你本地gradle安装目录,否则,构建源码时,他会自动去下载gradle
    在这里插入图片描述
 distributionUrl=file\:///d\:/workDir/work-kits/gradle-4.4.1/gradle-4.4.1-bin.zip
  1. 修改build.gradle文件中的repositories配置项,将外网的依赖仓库改成阿里云配置
    在这里插入图片描述
    	//阿里云仓库全家桶
    	maven{ url 'https://maven.aliyun.com/repository/central'}
    	maven{ url 'https://maven.aliyun.com/repository/public' }
    	maven{ url 'https://maven.aliyun.com/repository/google'}
    	maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'} // gradle 相关插件仓库
    	maven{ url 'https://maven.aliyun.com/repository/spring'}
    	maven{ url 'https://maven.aliyun.com/repository/spring-plugin'}
    	maven{ url 'https://maven.aliyun.com/mvn/guide'}
    	maven{ url 'https://maven.aliyun.com/repository/apache-snapshots'}
    

源码编译

方法一:
打开idea 将spring源码导入,打开后需要进行以下配置

  1. 打开project settings 配置JDK版本
    在这里插入图片描述
  2. 打开settings,配置gradle
    在这里插入图片描述
    特别说明:建议将Build and run using和Run tests using修改成IDEA,不要使用gradle(Default),后续编译会快很多
    在这里插入图片描述
  3. 使用build惊醒编译,这个时间比较长,期间如果发生异常中断,一般都是网络超时,直接点击刷新重试即可
    在这里插入图片描述

方法二:
在spring源码目录中打开shell界面执行.\gradlew.bat进行编译
在这里插入图片描述
出现BUILD SUCCESSFUL代表编译成功,然后将spring源码导入idea,配置好Project settings和gradle即可
在这里插入图片描述

源码调试

  1. 创建一个gradle模块,模块名可以自定义,
  2. 在自定义模块的build.gradle配置文件中增加spring-context和spring-instrument的依赖
    implementation project(":spring-context")
    implementation project(":spring-instrument")
    
    在这里插入图片描述
    这里说明一下,本来只需要导入spring-context依赖,但是只导入这一个依赖在启动时可能会发生以下异常,context中依赖的instrument依赖找不到,所以可以将两个依赖一起导入
    在这里插入图片描述
  3. 创建测试Bean
    在这里插入图片描述
  4. 创建启动类
    在这里插入图片描述
  5. 执行启动类
    如果能正常输出测试内容,说明调试成功
    在这里插入图片描述

彩蛋

如何快速的阅读源码和定位核心方法
可以使用正常的Dubug+idea插件 Sequence Diagram
在这里插入图片描述
Sequence Diagram插件安装后可以在方法上直接右击打开SequenceDiagram 就可以看到方法的调用链路
在这里插入图片描述
可以在设置中调整方法进入深度和跳过一些无用方法
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值