☀️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文件内容拷贝到自己新建的moudle的build.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>
以上文件创建后,即可开始我们的 “第一行代码~” 💥
到此,就可以开启我们的源码之旅了~ ✨⭐️🌟
🐼如果大家有什么问题的话,欢迎在下方留言补充呦~