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.gitignoreHELP.mdmvnwmvnw.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>








![[数据结构]:06-队列(链表)(C语言实现)](https://img-blog.csdnimg.cn/b3ecae3eb7c2422ba896c6694ec376bb.png)










