目录

  • 一. 🦁 前言
  • 二. 🦁 搭建步骤
  • 2.1 环境要求
  • 2.1.1 IDEA
  • 2.1.2 JDK
  • 2.1.3 源码拉取
  • 2.1.4 编译源码
  • 2.2 搭建测试子模块
  • 2.2.1 修改pom文件
  • 2.2.2 测试
  • 三. 🦁 调试
  • 四. 🦁 总结

一. 🦁 前言

要学习SpringBoot源码,搭建一个源码调试环境是一个好的前提。现在我们来搭建一个属于自己的源码环境叭!!!

【SpringBoot源码剥析】| 源码环境搭建 & 调试_spring boot

二. 🦁 搭建步骤

2.1 环境要求

2.1.1 IDEA

Jetbrains 出品的 IDEA 工具(建议2020款)

2.1.2 JDK

需要使用 JDK 编译 Spring Boot 的代码,这里狮子使用的是 JDK 11 版本

2.1.3 源码拉取

使用 IDEA 从官方仓库 https://github.com/spring-projects/spring-boot/releases 克隆项目。

具体操作如下:

【SpringBoot源码剥析】| 源码环境搭建 & 调试_spring_02

狮子使用的是Springboot-2.2.9.RELEASE的版本,因为Springboot2.3+以上的版本都是用grandle来管理项目,对于初学者来说太不友好了,还是习惯使用Maven版本管理项目。

2.1.4 编译源码

tips:
这一步需要网络非常好,并且有时候会编译不成功(狮子花了半个小时才成功,主要原因Spring Boot 内置了 50+ 个 Starter 的实现,导致引入了非常多的依赖。),如果不成功的话,继续执行以下命令即可。

我们解压项目之后,打开项目所在的路径,然后打开cmd工具,输入以下命令:

mvn clean install -DskipTests -Pfast

编译成功(这是狮子第二次编译,所以会比较快):

【SpringBoot源码剥析】| 源码环境搭建 & 调试_编译源码_03

编译完成之后,使用IDEA打开项目即可。

2.2 搭建测试子模块

现在咱们来搭建一个子模块,方便后续调试使用。具体搭建Module(这里不一一阐述了,会看源码的,应该搭建也会搭建)

2.2.1 修改pom文件

打开新建的子模块pom子工程,将含有spring-boot版本号的代码删除,添加如下代码:

<parent>
		<artifactId>spring-boot-parent</artifactId>
		<groupId>org.springframework.boot</groupId>
		<version>2.2.9.RELEASE</version>
		<relativePath/>			<!-- 查看本地仓库的源码 -->
	</parent>

目的是为了能在本地查看源码的时候,可以添加注解。如下:

【SpringBoot源码剥析】| 源码环境搭建 & 调试_java_04


到这一步,源码环境搭建成功。

2.2.2 测试

下面我们创建一个项目来运行下(创建一个controller):

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

	@RequestMapping("/test")
	public String test(){
		System.out.println("源码环境构建成功...");
		return "源码环境构建成功";
	}
}

测试如下:

【SpringBoot源码剥析】| 源码环境搭建 & 调试_github_05

【SpringBoot源码剥析】| 源码环境搭建 & 调试_编译源码_06

三. 🦁 调试

狮子这里特地找了一个视频,大家可以直观地查看了:

Debug 运行 SampleTomcatApplication 类,首次构建会需要几秒钟,成功进入断点,可以愉快的调试 Spring Boot 启动过程

【SpringBoot源码剥析】| 源码环境搭建 & 调试_java_07

四. 🦁 总结

到这里,搭建源码完成啦,也不难,你搭建好了吗?😄