【Spring源码学习篇(一)】☀️Spring5本地环境编译,超级实用!!✨

Spring编译环境的准备

⭐️ JDK11
⭐️ Gradle6.9,1
⭐️ IDEA2020.3.4
⭐️【Spring-Framework】5.2.13

✨ JDK/Gradle/IDEA的安装自行百度嗷~(都看Spring源码了,这些应该都有的叭哈哈)
☀️ Spring的源码大家可以从俺的Github仓库下载 【Spring-Framework-Cocowwy
☀️ Spring源码相关系列文章:
⭐️【Spring源码学习篇(二)】☀️从源码的角度梳理SpringBean的生命周期~✨

Spring环境编译

拉取代码

⚡️打开IDEA之后,点击左上角的 File ➡️ new ➡️ project from version control
⚡️选择项目地址后点击 clone 即可
在这里插入图片描述

修改IDEA的Gradle配置

⚡️点击左上角的 File ➡️ setting ➡️ Build,Execution,Deployment ➡️ Gradle ➡️ Build Tools ➡️ Gradle
⚡️修改参照下图配置,同时 Gradle JVM 要为版本11
在这里插入图片描述

修改maven下载地址

⚡️打开 build.gradle 文件, CTRL+F 搜索 repositories

repositories {
		mavenCentral()
		maven { url "https://repo.spring.io/libs-spring-framework-build" }
}

⚡️替换成

repositories {
	maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
	maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public" }
	mavenCentral()
	maven { url "https://repo.spring.io/libs-spring-framework-build" }
}

Reload All Gradle Projects

在这里插入图片描述

解决导入报错 org.springframework.cglib.core.*

⚡️Reload 完成后,会发现 spring-core 包下一堆报错问题,org.springframework.cglib.core.* 这个报下面大部分飘红,可以从 Terminal 中进入 spring-beans 执行命令即可

gradle build

之后耐心等待 jar 包的导入即可

解决导入报错 jdk.jfr.*

⚡️更换 JDK11 的版本,File ➡️ Project Settings ➡️ Project SDK ➡️ 更换成JDK11
在这里插入图片描述
⚡️同时,进入 File ➡️ setting ➡️ Build,Execution,Deployment ➡️ Compiler ➡️ 右侧的 Project bytecode version 改为 11
在这里插入图片描述

完成

等到项目文件夹右下角变成蓝色的小方块的时候,同时项目没有飘红的话,即大功告成啦💥 ~
在这里插入图片描述

创建新的Moudle

⭐️ 在项目名上右键 ➡️ new ➡️ module ➡️ 选择 Gradle ➡️ next ➡️ finish
⭐️ 将 spring-test 项目的spring-test.gradle文件内容拷贝到自己新建的moudlebuild.gradle文件里
在这里插入图片描述
这样即可完成对新Moudle的创建 💥~

开启第一个DEBUG

以上工作准备完好了后,就要开始最令人兴奋的一步了,debug 调试spring源码 💥
在自己的 moudle 下的 src 下新建如下文件
⚡️main入口

import bean.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author Cocowwy
 * @create 2021-08-08-17:28
 */
public class Test {
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
		Student student = (Student) context.getBean("student");
		System.out.println(student);
	}
}

⚡️实体类

package bean;

/**
 * @author Cocowwy
 * @create 2021-08-08-13:38
 */
public class Student {
	private String name;

	private String studentNo;

	private String sex;

	public Student() {
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getStudentNo() {
		return studentNo;
	}

	public void setStudentNo(String studentNo) {
		this.studentNo = studentNo;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}
}

⚡️spring.xml

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

以上文件创建后,即可开始我们的 “第一行代码~” 💥
在这里插入图片描述
到此,就可以开启我们的源码之旅了~ ✨⭐️🌟
🐼如果大家有什么问题的话,欢迎在下方留言补充呦~

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值