spring源码环境安装指南

引言

作为一个合格的程序员,想要进阶,源码阅读是不可避免的,其中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 就可以看到方法的调用链路
在这里插入图片描述
可以在设置中调整方法进入深度和跳过一些无用方法
在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【2021年,将Spring全家桶系列课程进行Review,修复顺序等错误。进入2022年,将Spring的课程进行整理,整理为案例精讲的系列课程,并新增高级的Spring Security等内容,通过手把手一步步教你从零开始学会应用Spring,课件将逐步进行上传,敬请期待】 本课程是Spring案例精讲课程的第四部分Spring Cloud,Spring案例精讲课程以真实场景、项目实战为导向,循序渐进,深入浅出的讲解Java网络编程,助力您在技术工作中更进一步。 本课程聚焦Spring Cloud的核心知识点:注册中心、服务提供者与消费者、服务的调用OpenFeign、Hystrix监控、服务网关gateway、消息驱动的微服务Spring Cloud Stream、分布式集群、分布式配置中心的案例介绍, 快速掌握Spring Cloud的核心知识,快速上手,为学习及工作做好充足的准备。 由于本课程聚焦于案例,即直接上手操作,对于Spring的原理等不会做过多介绍,希望了解原理等内容的需要通过其他视频或者书籍去了解,建议按照该案例课程一步步做下来,之后再去进一步回顾原理,这样能够促进大家对原理有更好的理解。【通过Spring全家桶,我们保证你能收获到以下几点】 1、掌握Spring全家桶主要部分的开发、实现2、可以使用Spring MVC、Spring Boot、Spring Cloud及Spring Data进行大部分的Spring开发3、初步了解使用微服务、了解使用Spring进行微服务的设计实现4、奠定扎实的Spring技术,具备了一定的独立开发的能力  【实力讲师】 毕业于清华大学软件学院软件工程专业,曾在Accenture、IBM等知名外企任管理及架构职位,近15年的JavaEE经验,近8年的Spring经验,一直致力于架构、设计、开发及管理工作,在电商、零售、制造业等有丰富的项目实施经验  【本课程适用人群】如果你是一定不要错过!  适合于有JavaEE基础的,如:JSP、JSTL、Java基础等的学习者没有基础的学习者跟着课程可以学习,但是需要补充相关基础知识后,才能很好的参与到相关的工作中。 【Spring全家桶课程共包含如下几门】 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值