spring5.3.x源码阅读环境搭建

一、搭建说明

1.阅读源码的途径:

第一种途径:创建一个spring工程,写启动代码debug阅读。
第二种途径:参考一些spring源码分析书籍.
第三种途径:通过B站搜索spring源码课程,边看边做笔记。
第四种途径:下载spring源码,使用gradle构建源码阅读环境,debug阅读,写注释。

2.四种途径的优缺点:

第一种途径的缺点:不能写注释,读完容易忘记
第一种途径的优点:入手简单,只要使用spring开发过项目就能阅读

第二种途径的缺点:书,毕竟篇幅有限,无法全面了解自己想看的内容
第二种途径的优点:根据书籍的目录浏览,细读内容,容易抓住重点。

第三种途径的缺点:容易自以为懂了,真正总结的时候需要反复看
第三种途径的优点:跟着课程走,通俗易懂。容易缕清脉络。

第四种途径的缺点:如果对gradle不了解,搭建环境容易失败。
第四种途径的优点:可以写注释,通过idea可以查看类图,同时可以将自己阅读的内容提交git,留存记忆,容易回顾。
3.总结阅读方法:个人比较偏向的方式:搭建源码+视频+spring官方文档
4.阅读spring源码需要储备的知识:
设计模式:理解设计模式,有助于理解spring架构思想。
数据结构:了解数据结构,有助于理解spring中数据流转
jvm:了解jvm有助于理解spring的运行过程
多线程:了解多线程,有助于理解spring中的并发处理。
5.搭建源码环境的步骤要点:
第一步:下载gradle,配置gradle.
第二步:全局配置idea.
第三步:下载源码
第四步:修改源码配置,特别是依赖仓库。
第五步:导入源码,并构建源码
6.spring虽然更新很频繁,但是基本核心内容和设计思想这两点几乎是改动的很少,建议学习源码最好使用5.3.x版本,原因有两点:一、spring6最低支持jdk17,实际开发环境不会用jdk17;二、spring6的新功能暂时我们是用不上的,没必要追求最新。

二、下载spring源码

1.进入spring官网:https://spring.io/projects/spring-framework

2.点击右上角的github地址进入spring源码仓库:
https://github.com/spring-projects/spring-framework
切换到5.3.X分支,找到gradle-wrapper.properties文件,查看官方使用的gradle版本:如下图:
在这里插入图片描述
gradle版本:记录下来,以便一会对应版本下载
distributionUrl=https://services.gradle.org/distributions/gradle-7.2-bin.zip
在这里插入图片描述

3.创建自己gitee仓库:

注意:
如果直接从官方仓库下载或者克隆,会出现git初始化错误,编译的时候也会报git的错误,看着不爽。

创建的时候,需要把仓库内容从github克隆:创建仓库的时候点击右上角的 “点击导入”

填写好克隆地址:https://github.com/spring-projects/spring-framework.git

直接点击创建,稍等几分钟等待克隆完毕。
在这里插入图片描述
在这里插入图片描述
接下来直接点击创建即可,由于文件比较多,可能要初始化一段时间。

4.在本地克隆自己仓库里的spring源码:

git clone -b 5.3.x https://gitee.com/ht-learnjava/spring-framework.git
此处就不介绍git的使用了,不熟练的玛友们可以百度学习下。
在这里插入图片描述

等待源码下载完毕

三、安装gradle

spring源码时基于gradle构建的,为了更好的学习源码、最好是去学习一下gradle

1.在下载的源码中找到gradle-wrapper.properties文件,打开此文件看到如下内容:

所在位置:D:\spring-framework\gradle\wrapper\gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

此文件中的内容声明了官方所用的gradle版本:gradle-7.2-bin.zip

2.下载对应的grandle版本

下载地址:https://gradle.org/releases/

选择v7.2版本
在这里插入图片描述

3.在自己电脑中的某一位置解压下载的gradle,在解压目录中新建一个文件夹 . gradle,
在这里插入图片描述

也可以在其他位置新建,此文件夹是为gradle的jar包本地仓库位置,类似于maven的localRepository

4.在init.d文件夹下创建gradle初始化配置文件:init.gradle,在此配置文件中配置中央仓库和本地仓库,内容如下:
在这里插入图片描述
文件内容:

在这里插入图片描述

// project
allprojects{
    repositories {
        mavenLocal()
        maven { url 'https://maven.aliyun.com/repository/public/' }
        maven { url 'https://maven.aliyun.com/repository/jcenter/' }
        maven { url 'https://maven.aliyun.com/repository/google/' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
        maven { url 'https://jitpack.io/' }
    }
}
// plugin
settingsEvaluated { settings ->
    settings.pluginManagement {
        // Clear repositories collection
        repositories.clear()
        // Add my Artifactory mirror
        repositories {
            mavenLocal()
            maven {
                url 'https://maven.aliyun.com/repository/gradle-plugin/'
            }
        }
    }
}

5.配置gradle的系统环境变量

变量1:GRADLE_HOME(gradle安装路径变量)

变量1的值为:D:\software\gradle-7.2(自己解压的gradle目录)

变量2:GRADLE_USER_HOME(仓库目录)

变量2的值:D:\software\gradle-7.2\.gradle(就是我们新建的.gradle目录)
在这里插入图片描述

path里加上gradle命令路径:%GRADLE_HOME%\bin
在这里插入图片描述

至此gradle安装完毕,继续下一步。

四、配置idea环境

1.使用idea打开spring源码,打开他就会下载jar包,我们此时环境还没有配好,需要停止build。

2.配置project Structure 中的jdk版本,最好使用jdk8
在这里插入图片描述
在这里插入图片描述

3.在setting-plugins中安装aspectj编译插件(spring-aop和spring-aspects项目需要此插件编译)
在这里插入图片描述
在这里插入图片描述

4.安装AspectJ,安装的前提是配置了jdk环境变量。
在这里插入图片描述

下载地址:https://www.eclipse.org/aspectj/downloads.php
下载最新版就行。
在这里插入图片描述

第一步:在aspectj下载的目录位置,打开cmd窗口,执行:java -jar aspectj-1.9.6.jar,此时会弹出jdk选择窗口,确认jdk路径是否正确
在这里插入图片描述
在这里插入图片描述

第二步:点击下一步选择aspectj安装目录:我的目录为 D:\software
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.在ide中配置aspectj编译环境:需要重启idea进行安装(重启的目的是为了让aspectj插件生效)。

第一步:

在setting中找到 Build、Execution、Deployment下的Compiler,在Compiler下找到 Java Compiler,选择Use compiler 的选项为ajc

在此面板中找到 Ajc Options:勾选Delegate to javac,目的是让aspectj只编译我们配置的aop和aspects项目使用aspectj编译,其他的使用javac编译。
在这里插入图片描述

第二步:在Project Structure中找到spring下面的spring-aop项目和spring-aspects项目,在这两个项目分别都添加aspect编译环境:右键项目—>add 选项中选择aspectj.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

至此,编译环境设置好,还需继续配置其他内容

6.配置gradle仓库:在setting中找到Gradle.配置Grandle use home 为:D:/software/gradle-7.2/.gradle(自己新建的.gradle目录)
在这里插入图片描述

7.修改项目中的中央仓库配置:

第一步:在项目中找到buildSrc中的build.gradle文件,搜索 repositories,repositories的配置如下:
在这里插入图片描述

repositories {
	mavenLocal()
        maven { url 'https://maven.aliyun.com/repository/public/' }
        maven { url 'https://maven.aliyun.com/repository/jcenter/' }
        maven { url 'https://maven.aliyun.com/repository/google/' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
        maven { url 'https://jitpack.io/' }
	mavenCentral()
	gradlePluginPortal()
}

第二步:项目中的build.gradle和setting.gradle都做同样的配置:
在这里插入图片描述
在这里插入图片描述

repositories {
	mavenLocal()
        maven { url 'https://maven.aliyun.com/repository/public/' }
        maven { url 'https://maven.aliyun.com/repository/jcenter/' }
        maven { url 'https://maven.aliyun.com/repository/google/' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
        maven { url 'https://jitpack.io/' }
	mavenCentral()
	gradlePluginPortal()
}

五、编译工程:

1.点击idea右边的gradle,刷新gradle,等待依赖下载完毕。
在这里插入图片描述

2.编译spring-oxm子项目。执行spring—>spring-oxm—>task-other下的compileTestJava插件
在这里插入图片描述

3.编译整个工程,执行spring—>Tasks—>build下的build插件

等待几分钟编译完毕即可
在这里插入图片描述
在这里插入图片描述

六、新建gradle工程

在这里插入图片描述
添加依赖
在这里插入图片描述
新建user类
在这里插入图片描述

新建 applicationContext.xml

在这里插入图片描述
新建测试demo
在这里插入图片描述
运行demo,成功看到输出

User{username=‘张三’, age=28}
在这里插入图片描述
通过debug啃下spring吧!

至此,spring源码编译完毕,继续奋斗吧!
欢迎大家给我留言沟通,共同进步。

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值