SpringBoot快速入门
- 1. SpringBoot简介
- 2. SpringBoot快速入门
- 2.1 创建SpringBoot项目(必须联网,要不然创建失败,在模块3会讲到原因)
- 2.2 编写对应的Controller类
- 2.3 启动测试
- 3. Spring官网构建工程
- 4. SpringBoot工程快速启动
- 4.1 为什么要快速启动?
- 4.2 SpringBoot项目打包
- 4.3 SpringBoot项目启动
- 5. SpringBoot概述
- 5.1 起步依赖
- 5.2 程序启动
- 5.3 切换web服务器
1. SpringBoot简介
SpringBoot
是由 Pivotal
团队提供的全新框架,其设计目的是用来简化 Spring
应用的初始搭建以及开发过程。
使用了 Spring
框架目的是简化开发。而 SpringBoot
又是对 Spring
开发进行简化。使用Spring时,需要进行如下配置:
- 创建工程,并在pom.xml中引入依赖坐标;
- 编写web3.0的配置类;
- 编写Spring、SpringMVC配置类
- 编写Controller类
使用SpringBoot
可以直接不用配置(1)-(3),只需要编写对应的Controller就可以了,就是这么简单。
2. SpringBoot快速入门
2.1 创建SpringBoot项目(必须联网,要不然创建失败,在模块3会讲到原因)
-
选择New Module创建新模块
-
选择
Spring Initializr
,用来创建SpringBoot
工程,选择Spring Initializr
来快速构建SpringBoot
工程。而在Module SDK
这一项选择安装的JDK
版本。
-
对
SpringBoot
工程进行相关的设置,必须按照图中的进行相关设置。
-
选中
Web
,然后勾选Spring Web
。由于需要开发一个web
程序,使用到了SpringMVC
技术,所以按照下图红框进行勾选(选择Spring Boot版本的时候要特别注意,2.x.x对应的Java JDK版本为1.8, 3.x.x版本对应Java JDK为17)
-
下图界面不需要任何修改,直接点击
Finish
完成SpringBoot
工程的构建
-
项目创建结果如下
注意:
-
在创建好的工程中不需要创建配置类
-
创建好的项目会自动生成其他的一些文件,而这些文件目前没有任何作用,所以可以将这些文件删除。
可以删除的目录和文件如下:
.mvn
.gitignore
HELP.md
mvnw
mvnw.cmd
2.2 编写对应的Controller类
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author Mr.Lu
* @Date 2023/2/24 21:47
* @ClassName BookController
* @Version 1.0
*/
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping("/{id}")
public String getById(@PathVariable Integer id){
System.out.println("id ===> " + id);
return " hello springboot";
}
}
2.3 启动测试
3. Spring官网构建工程
-
进入
SpringBoot
官网:https://spring.io/projects/spring-boot
-
从
Projects
–>Overview
-
进入到
Spring Boot
并拖到最下面找到如下图
-
点击
Spring Initializr
, 可以发现下图的界面与IDEA 创建Spring Boot项目非常像。 -
进行相关配置后,点击
GENERATE CTRL +
即可
-
查看,发现的确是一个
SpringBoot
项目
那么现在回答第一模块中提出的问题,为什么用IDEA创建SpringBoot项目必须要联网,要不然会创建失败?
- 其实IDEA创建Spring Boot项目走的就是Spring官网构建Spring Boot项目的流程,相当于是SpringBoot官网帮我们构建,然后展示在我们的IDEA上,所以这是必须要联网的原因。
4. SpringBoot工程快速启动
4.1 为什么要快速启动?
以后我们和前端开发人员协同开发,而前端开发人员需要测试前端程序就需要后端开启服务器,这就受制于后端开发人员。为了摆脱这个受制,前端开发人员尝试着在自己电脑上安装 Tomcat
和 Idea
,在自己电脑上启动后端程序,这显然不现实。
我们后端可以将 SpringBoot
工程打成 jar
包,该 jar
包运行不依赖于 Tomcat
和 Idea
这些工具也可以正常运行,只是这个 jar
包在运行过程中连接和我们自己程序相同的 Mysql
数据库即可。这样就可以解决这个问题。
4.2 SpringBoot项目打包
在构建 SpringBoot
工程时已经在 pom.xml
中配置了如下插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
所以只需要使用 Maven
的 package
指令打包就会在 target
目录下生成对应的 Jar
包。
注意:该插件必须配置,不然打好的
jar
包也是有问题的。
4.3 SpringBoot项目启动
-
进入
springboot_01_quickstart1-0.0.1-SNAPSHOT.jar
所在的目录
-
在该目录下进入cmd, 回车即可
-
输入
java -jar springboot_01_quickstart1-0.0.1-SNAPSHOT.jar
, 启动该项目
-
Postman工具进行测试
5. SpringBoot概述
5.1 起步依赖
我们使用 Spring Initializr
方式创建的 Maven
工程的的 pom.xml
配置文件中自动生成了很多包含 starter
的依赖,如下图
- 进入
spring-boot-starter-parent
进行查看
- 可以看到
spring-boot-starter-parent
的父工程为spring-boot-dependencies
,进行查看,可以发现很多依赖都已经进行了配置。
-
进入spring-boot-starter-web进行查看
-
进入
spring-boot-starter-test
进行查看
这些依赖就是启动依赖
5.2 程序启动
创建的每一个 SpringBoot
程序时都包含一个类似于下面的类,我们将这个类称作引导类
@SpringBootApplication
public class Springboot01QuickstartApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot01QuickstartApplication.class, args);
}
}
注意:
-
SpringBoot
在创建项目时,采用jar的打包方式 -
SpringBoot
的引导类是项目的入口,运行main
方法就可以启动项目
因为我们在 pom.xml
中配置了 spring-boot-starter-web
依赖,而该依赖通过前面的学习知道它依赖 tomcat
,所以运行 main
方法就可以使用 tomcat
启动咱们的工程。
5.3 切换web服务器
预备Maven高级知识:可选依赖和排除依赖
A依赖B,B依赖C
,C
通过依赖传递会被A
使用到,现在要想办法让A
不去依赖C
- 可选依赖是在B上设置
<optional>
,A
不知道有C
的存在, - 排除依赖是在A上设置
<exclusions>
,A
知道有C
的存在,主动将其排除掉。
我们启动工程使用的是 tomcat
服务器,那能不能不使用 tomcat
而使用 jetty
服。而要切换 web
服务器就需要将默认的 tomcat
服务器给排除掉,怎么排除呢?使用 exclusion
标签:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
引入 jetty
服务器。在 pom.xml
中引入 jetty
的起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>