Spring5.2.x源码搭建

环境

  1. Spring5.2.x
  2. jdk8
  3. idea2020

Spring

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Gradle

查看Spring使用的Gradle版本,这里要记得将distributionUrl指向本地的gradle包,不然还是会去下载的Gradle

在这里插入图片描述

下载

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

在这里插入图片描述

安装

当我们下载好之后,先配置一下 distributionUrl地址为我们本地的Gradle

distributionUrl=file:///E:/data/gradle-5.6.4-bin.zip

在这里插入图片描述

win下,配置环境变量GRADLE_HOMEGRADLE_USER_HOME(一个放库文件的目录)

在这里插入图片描述

最后输入gradle -v,看到下面的结果就说明安装成功啦

在这里插入图片描述

配置maven仓库

在源码的根路径找到build.gradle文件,在repositories中加入下面的代码,修改maven地址为阿里云仓库,记得用这个,不要图片少几个s就不用我这个了

// mavenCentral()
// 新增阿里云仓库
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'}
// 新增springsource仓库 
maven { url "https://repo.springsource.org/plugins-release" } 
maven { url "https://repo.spring.io/plugins-release" }
maven { url "https://repo.spring.io/libs-spring-framework-build" }
maven { url "https://repo.spring.io/milestone" }

在这里插入图片描述

构建Spring5.2.x源码

在spring源码根路径中找到gradlew.bat并在cmd窗口中运行
在这里插入图片描述
等待下载,如果失败了可能是网络原因,如果配置了maven仓库应该可以顺利下载

在这里插入图片描述

在spring项目中找到 import-into-idea.md文件
在这里插入图片描述
所以我们Spring源码根目录启动cmd,在执行命令./gradlew :spring-oxm:compileTestJava

在这里插入图片描述

导入步骤

在这里插入图片描述
在这里插入图片描述
这里第一次导入时可能需要手动停止,然后去设置这个idea的gradle本地仓库,不然又直接下载到C盘去了,还有本地的gradle,不然idea要自己去下载了

在这里插入图片描述

然后又是慢慢等待下载的时间了,下载好之后可以看到下图了

在这里插入图片描述

接着连按两次shift键,找到ApplicationContext类,并按ctrl+shift+alt+u,看到下图也表示成功啦4

在这里插入图片描述

在编译一下
在这里插入图片描述

我们可以找个单元测试跑一下
路径:\spring-framework-5.2.x\spring-core\src\test\java\org\springframework\util\StringUtilsTests.java

在这里插入图片描述

全局搜索(CRTL + SHIFT + F)-Werror有两个文件使用了这个编译参数,直接删掉就行了。

在这里插入图片描述

全局搜索allWarningsAsErrors = true改成allWarningsAsErrors = false

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

新建测试模块

在这里插入图片描述

1.在Spring中添加自己的module模块,同样选择gradle构建

在这里插入图片描述

2.输入ArtufactId,工程名

在这里插入图片描述

3.慢慢等待下载完成即可,下载完之后我们该导入的导入

在这里插入图片描述

compile(project(":spring-context"))
compile(project(":spring-beans"))
compile(project(":spring-core"))
compile(project(":spring-aop"))

在这里插入图片描述

4.下面编写一个简单的applicationContext获取容器用的bean,主要是测试Spring源码构建编译过程是否成功!

在这里插入图片描述

JavaConfig

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan
public class JavaConfig {

	@Bean
	public User user(){
		return new User("张三","男");
	}

}

Main

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

	public static void main(String[] args) {

		ApplicationContext ac = new AnnotationConfigApplicationContext(JavaConfig.class);
		User user = (User) ac.getBean("user");
		System.out.println(user);
	}

}

User

public class User {

	private String name;
	private String sex;

	public User() {
	}

	public User(String name, String sex) {
		this.name = name;
		this.sex = sex;
	}

	@Override
	public String toString() {
		return "User{" +
				"name='" + name + '\'' +
				", sex='" + sex + '\'' +
				'}';
	}
}

执行结果
在这里插入图片描述

在这里插入图片描述

参考文献

如果你跟着我走还是出现问题可以看一下,我给的参考文献我又是看参考文献解决了不少的问题

  • https://blog.csdn.net/m0_37959155/article/details/126273608
  • https://blog.csdn.net/weixin_40251892/article/details/108962572
  • https://blog.csdn.net/weixin_28221501/article/details/113318717
  • https://blog.csdn.net/weixin_44008517/article/details/114260670
  • https://blog.csdn.net/qq_42282200/article/details/105907972
  • https://blog.csdn.net/qq_42282200/article/details/105907972
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值