四时宝库

程序员的知识宝库

spring源码阅读搭建(spring源码环境搭建)



一、搭建说明

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


此文件中的内容声明了官方所用的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,在此配置文件中配置中央仓库和本地仓库,内容如下:


文件内容:


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的配置如下:


第二步:项目中的build.gradle和setting.gradle都做同样的配置:



五、编译工程:

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源码编译完毕,老铁,雄起!
欢迎大家给我留言沟通,共同进步。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接