1、官网的功能特性简介

[
](https://github.com/spring-projects/spring-boot)
2、选择对应的版本进行下载
官网下载地址: https://github.com/spring-projects/spring-boot

3、需要提前准备的条件

官网说了,可以gradle、maven自己选择一种作为构建系统
4、开始构建
注意:maven版本一定要匹配,不然导入不了。
本来想用maven构建的,但是发现没有pom.xml,就临时改为用gradle构建



如果想快点同步完毕:
在buildSrc下面的 build.gradle settings.gradle 添加
在buildSrc外面的 build.gradle settings.gradle 添加

maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }maven { url "https://repo.spring.io/plugins-release" }
5、开始现有的项目进行测试

6.1、Gradle创建自己的项目进行测试
(官网有很多是用gradle进行源码构建,后面分析进入是class文件,如果这样不用构建源码也能进class的。
构建源码就是为了最后进的是java文件,我是通过官网给的模板来进行配置gradle的。步骤如下)
用Gradle来创建测试项目


1、gradle添加的版本依赖
注意: 不能存在下面这两个,我试过了,不能成功加载。只有去掉就能成功加载。
group ‘org.springframework.boot’
__version ‘2.3.13.BUILD-SNAPSHOT’
成功加载的文件如下:
plugins {id "java"/*这个id是不能少的,不然Application就找不到对应的映射类*/id "org.springframework.boot.conventions"}sourceCompatibility = 11description = "Spring Boot demo2 test"repositories {mavenCentral()}dependencies {/*get & set*/compileOnly 'org.projectlombok:lombok:1.18.6'annotationProcessor 'org.projectlombok:lombok:1.18.6'/*引入spring web 的源码(其实在下面那些测试模块就有如何引用源码,不然它们怎么跑呢)*/implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-web"))/* {exclude module: "spring-boot-starter-tomcat" // 必须要有Tomcat,不然启动完就掉了}*//**测试类的源码*/testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test"))}
2、成功加载后的依赖如下

3、创建启动类
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class BootApplication {public static void main(String[] args) {SpringApplication.run(BootApplication.class,args);}}
4、创建controller
import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class UserController {@RequestMapping("/query")public User query(){return new User("Hellow Word",1);}}
5、创建pojo类
用了@Setter@Getter,但是返回不了数据,说找不到对应的解析器,只能自己生成了。
public class User {private String userName;private Integer age;public User(){}public User(String userName,Integer age){this.userName=userName;this.age=age;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}}
6、整体结构图

7、运行查看效果

接下来我就可以开始分析源码了。debug后是进入到对应的java文件的。
SpringBoot项目在2.3.0之前是使用Maven构建项目的,在2.3.0之后是使用Gradle构建项目了
6.2、Maven创建自己的项目进行测试
https://github.com/spring-projects/spring-boot/releases
或者直接看tags这个,更直观
https://github.com/spring-projects/spring-boot/tags
1、 编译源码
进入spring-boot源码根目录

在地址栏全选,输入cmd回车。跳出如下的输入框
执行mvn命令: mvn clean install -DskipTests -Pfast // 跳过测试用例,会下载大量 jar 包(时 间会长一些) 
但是要跑接近一个钟,感觉比较久,还是gradle的比较快。
[
](https://blog.csdn.net/ganquanzhong/article/details/100401914)
