侧边栏壁纸
博主头像
一定会去到彩虹海的麦当

说什么呢?约定好的事就一定要做到啊!

  • 累计撰写 63 篇文章
  • 累计创建 16 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

[Spring源码]——Spring源码环境搭建

一定会去到彩虹海的麦当
2022-01-18 / 0 评论 / 1 点赞 / 69 阅读 / 3,580 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-05-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

弄了半天终于配置好了Spring源码环境,经历了很多坑,现在把我的配置过程记录一下

@

关于编译工具

这里推荐大家使用idea来学习Spring源码,一个好的工具对于我们学习Spring源码是很好的帮助的,大家最好使用较新的idea,因为新版本有一些比较好的功能用来学习源码。这对我们学习源码来说无疑于事半功倍。

这里提供我当时参考的idea安装教程

intellij idea2021安装教程

JDK配置

image-20220125145632780

我的JDK版本是1.8.0_131,大家的JDK至少要1.8及以上

下载Spring源码

因为github的下载速度较慢,大家可以从gitee上下载

https://gitee.com/mirrors/Spring-Framework

这里我选择5.2.x 的版本下载

image-20220125145411168

image-20220125145454421

git clone git@gitee.com:mirrors/Spring-Framework.git

Gradle环境配置

确定gradle版本:

我们需要去到spring源码根目录gradle\wrapper下的gradle-wrapper.properties文件中进行查看

image-20220125150504025

可以看到我们这个版本的Spring对应的gradle是5.6.4

下载gradle

下载地址:

https://services.gradle.org/distributions/

在里面找到对应的gradle版本,点击下载即可

image-20220125151536845

配置环境变量

下载后解压,复制解压后的地址

image-20220125150711595

添加系统环境变量

#变量名
GRADLE_HOME
#变量值:你的gradle的解压地址
K:\gradle-5.6.4

image-20220125150811925

找到path环境变量,点击编辑

image-20220125150922084

然后新建

%GRADLE_HOME%\bin

image-20220125151008687

然后打开cmd,输入gradle -v,如果出现版本号即为配置成功

image-20220125151100983

最后,我们还可以修改一下gradle库的位置,否则会统一下载到c盘

新建系统环境变量

#变量名
GRADLE_USER_HOME
#变量值(更改为你自己的路径)
I:\gradle_repo

image-20220125151947587

Spring源码配置

1、调整读取gradle文件的路径

将下载的gradle-5.6.4-bin.zip文件复制到spring源码根目录gradle\wrapper\ 下

image-20220125151630471

修改spring源码根目录gradle\wrapper\gradle-wrapper.properties文件

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=gradle-5.6.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

将distributionUrl更改即可

配置idea

我们需要在idea的设置中,更改一下gradle的库位置

image-20220125151801452

IDEA导入Spring项目

image-20220125152248075

直接选择你的项目

image-20220125152320501

导入成功后,可以看到大概的源码结构

image-20220125152731107

导入后,在IDEA右侧你会看到一个Gradle工具栏,点开后看到如下信息,然后找到如下位置,点击进行build

image-20220125152618629

成功后,即可看到如下信息

image-20220125152438655

排除spring-aspects模块

因为spring-aspects模块在编译时是依赖ajc编译器的,如果不移除的话,它里面的类是会爆红的

image-20220125152957898

img

添加测试模块

添加gradle模块

按下面截图所示步骤可以快速创建一个基本的gradle模块。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

修改build.gradle文件

模块创建好之后只有一个build.gradle文件,可以在里面添加需要调试的模块,如下:

plugins {
    id 'java'
}

group 'org.springframework'
version '5.2.20.BUILD-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    // ========= 添加调试模块 start ===========
    compile(project(":spring-beans"))
    compile(project(":spring-core"))
    compile(project(":spring-context"))
    compile(project(":spring-webmvc"))
    compile(project(":spring-jdbc"))
    compile(project(":spring-orm"))
    compile(project(":spring-tx"))
    compile(project(":spring-web"))
    // ========= 添加调试模块 end ===========
    testCompile group: 'junit', name: 'junit', version: '4.12'
}


添加代码

然后添加代码,构建成如下图结构:

image-20220125153300427

MyAppContext

import com.wcl.User;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyAppContext {
	public static void main(String[] args) {
        //这里对应你的xml配置文件
		ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");
		User user = (User) context.getBean("user");
		user.hello();

	}
}

User

package com.wcl;

public class User {
	public void hello(){
		System.out.println("hello spring...");
	}
}

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans 					      					http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd">
		<bean id="user" class="com.wcl.User" />
</beans>

运行

image-20220125153528461

image-20220125153608404

显示如上,即为运行成功,接下来就可以快乐地学习Spring源码了

bug解决

我当时删除了一个自己创建的module,结果运行其他的module却包了找不到我删除的module的错误

后面发现,要在Spring根目录下,找到settings.gradle文件,删除对应的配置才行

image-20220125153933131

参考链接

https://blog.csdn.net/MarkusZhang/article/details/109694812

https://juejin.cn/post/6989520585181102088

https://blog.csdn.net/qq_25825005/article/details/122518377

1

评论区