基础环境 | 版本 | 本地路径 |
---|---|---|
操作系统 | Windows 11 | - |
Spring源码 | 6.0.3 | D:\myproject\spring-framework-6.0.3 |
spring boot 源码 | spring-boot-3.0.1 | D:\myproject\spring-boot-3.0.1 |
Java环境 | JDK 17 | D:\myapp\java\jdk-17.0.5 |
编译工具 | Gradle 7.6 | D:\myapp\gradle\gradle-7.6 |
开发工具 | IDEA 2022.2.3 | D:\myapp\JetBrains\IntelliJ IDEA 2022.3 |
二. 前置环境安装
本篇文章默认已经装好
2.1 JDK环境安装
根据官方文档描述, Spring 6 需要 JDK 17
JDK官方地址
https://www.oracle.com/cn/java/technologies/downloads/#java17
2.2 IDEA 安装
idea官方地址
https://www.jetbrains.com/idea/download/#section=windows
2.3 Gradle 安装
gradle官方地址
https://gradle.org/releases/
注意:gradle 的版本要高于等于idea 版本
三.、源码编译
Spring源码github:https://github.com/spring-projects/spring-framework
Spring boot源码github https://github.com/spring-projects/spring-boot
3.1 获取方式
不建议zip包方式下载源代码,具体看官方issue:https://github.com/spring-projects/spring-framework/issues/24467
这里看个人选择,本篇文章选择压缩包的方式
(1)git 拉取方式
本篇文章不描述
(2)压缩包下载
下载成功并解压缩
3.2 环境设置
3.2.1 IDEA设置
File → Settings → Build,Execution,Deployment → Build Tools → Gradle
3.2.2 修改源码文件
(1)打开阿里云云效maven官方地址
https://developer.aliyun.com/mvn/guide
3.2.3 找到源码对应目录
(1)找到解压的项目,修改在项目根路径下的build.gradle
修改spring6
1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }
修改springboot3
1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }
(3)找到解压的项目,修改在项目根路径下的settings.gradle
修改spring6
1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }
2.注释掉
/*id "io.spring.ge.conventions" version "0.0.11"*/
修改springboot3
1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }
2.注释掉
/*id "io.spring.ge.conventions" version "0.0.11"*/
(4)找到解压的项目,修改项目buildSrc下的build.gradle
修改spring6
1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }
修改springboot3
1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }
2.注释掉
/*id "io.spring.javaformat" version "${javaFormatVersion}"*/
(5)找到解压的项目,修改在项目buildSrc路径下的settings.gradle
修改 spring boot3
1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }
(6)找到解压的项目,修改在项目根路径下的gradle.properties
修改spring6
1.添加java路径
org.gradle.java.home=jdk所在目录
修改spring boot3
1.添加java路径
org.gradle.java.home=jdk所在目录
3.3 导入项目到idea
3.3.1 选择项目JDK版本
File -> Project Structure
3.3.2 设置idea编码格式
3.4 在完成上述的源码导入和相关设置之后,就可以进行源码编译了。
spring6可以选择 先执行 spring-oxm
的预编译
四、问题整理
4.1 spring6的spring-aspects模块编译问题解决
五、编写测试代码
5.1 spring6
1.新建模块
2. 添加依赖
在新建模块下的 build.gradle
新增 spring-context
依赖
api(project(":spring-context"))
3. 编写代码
package com.myspring.test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan("com.myspring.test")
public class MySpring6Application {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
MySpring6Application.class
);
HelloWorld bean = context.getBean(HelloWorld.class);
bean.hello();
}
}
package com.myspring.test;
import org.springframework.stereotype.Repository;
@Repository
public class HelloWorld {
public void hello(){
System.out.println("HelloWorld!");
}
}
4.执行用例
5.2 spring boot3
这里本篇文章直接使用源码的测试用例
五、完结撒花
这里先预祝大家编译成功。本篇文章根据官方文档编译 spring 6 和spring boot3源码,遇到问题,再到工程新增测试用例代码。
提醒,一定要带着一个目的去看源码,带着是什么(what);为什么(why);怎么做(how)的方式去思考,不要被动式的为了学习而学习,不然很容易迷失在源码里,看源码最终目的是学习别人思路。
2023-1-12