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 = 11
description = "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;
@SpringBootApplication
public 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;
@RestController
public 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)