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时,需要进行如下配置:

  1. 创建工程,并在pom.xml中引入依赖坐标;
  2. 编写web3.0的配置类;
  3. 编写Spring、SpringMVC配置类
  4. 编写Controller类

使用SpringBoot可以直接不用配置(1)-(3),只需要编写对应的Controller就可以了,就是这么简单。

2. SpringBoot快速入门

2.1 创建SpringBoot项目(必须联网,要不然创建失败,在模块3会讲到原因)

  • 选择New Module创建新模块
  • springboot 菜鸟教程 springboot详细入门_SpringMVC

  • 选择 Spring Initializr ,用来创建 SpringBoot 工程,选择 Spring Initializr 来快速构建 SpringBoot 工程。而在 Module SDK 这一项选择安装的 JDK 版本。
  • springboot 菜鸟教程 springboot详细入门_Java_02

  • SpringBoot 工程进行相关的设置,必须按照图中的进行相关设置。
  • springboot 菜鸟教程 springboot详细入门_SpringMVC_03

  • 选中 Web,然后勾选 Spring Web。由于需要开发一个 web 程序,使用到了 SpringMVC 技术,所以按照下图红框进行勾选(选择Spring Boot版本的时候要特别注意,2.x.x对应的Java JDK版本为1.8, 3.x.x版本对应Java JDK为17
  • springboot 菜鸟教程 springboot详细入门_Java_04

  • 下图界面不需要任何修改,直接点击 Finish 完成 SpringBoot 工程的构建
  • springboot 菜鸟教程 springboot详细入门_springboot 菜鸟教程_05

  • 项目创建结果如下
  • springboot 菜鸟教程 springboot详细入门_SpringMVC_06

注意:

  1. 在创建好的工程中不需要创建配置类
  2. 创建好的项目会自动生成其他的一些文件,而这些文件目前没有任何作用,所以可以将这些文件删除。
    可以删除的目录和文件如下:
  • .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 启动测试

springboot 菜鸟教程 springboot详细入门_SpringMVC_07

springboot 菜鸟教程 springboot详细入门_SpringBoot_08

3. Spring官网构建工程

  • 进入SpringBoot官网:https://spring.io/projects/spring-boot
  • springboot 菜鸟教程 springboot详细入门_Java_09

  • Projects–>Overview
  • springboot 菜鸟教程 springboot详细入门_Java_10

  • 进入到Spring Boot并拖到最下面找到如下图
  • springboot 菜鸟教程 springboot详细入门_Java_11

  • 点击Spring Initializr, 可以发现下图的界面与IDEA 创建Spring Boot项目非常像。
  • springboot 菜鸟教程 springboot详细入门_Java_12

  • 进行相关配置后,点击GENERATE CTRL +即可
  • springboot 菜鸟教程 springboot详细入门_springboot 菜鸟教程_13

  • 查看,发现的确是一个SpringBoot项目
  • springboot 菜鸟教程 springboot详细入门_Spring_14


  • springboot 菜鸟教程 springboot详细入门_Java_15

那么现在回答第一模块中提出的问题,为什么用IDEA创建SpringBoot项目必须要联网,要不然会创建失败?

  • 其实IDEA创建Spring Boot项目走的就是Spring官网构建Spring Boot项目的流程,相当于是SpringBoot官网帮我们构建,然后展示在我们的IDEA上,所以这是必须要联网的原因。

4. SpringBoot工程快速启动

4.1 为什么要快速启动?

以后我们和前端开发人员协同开发,而前端开发人员需要测试前端程序就需要后端开启服务器,这就受制于后端开发人员。为了摆脱这个受制,前端开发人员尝试着在自己电脑上安装 TomcatIdea ,在自己电脑上启动后端程序,这显然不现实。

我们后端可以将 SpringBoot 工程打成 jar 包,该 jar 包运行不依赖于 TomcatIdea 这些工具也可以正常运行,只是这个 jar 包在运行过程中连接和我们自己程序相同的 Mysql 数据库即可。这样就可以解决这个问题。

4.2 SpringBoot项目打包

在构建 SpringBoot 工程时已经在 pom.xml 中配置了如下插件

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

所以只需要使用 Mavenpackage 指令打包就会在 target 目录下生成对应的 Jar 包。

注意:该插件必须配置,不然打好的 jar 包也是有问题的。

springboot 菜鸟教程 springboot详细入门_Spring_16

4.3 SpringBoot项目启动

  • 进入springboot_01_quickstart1-0.0.1-SNAPSHOT.jar所在的目录
  • springboot 菜鸟教程 springboot详细入门_SpringBoot_17


  • springboot 菜鸟教程 springboot详细入门_Spring_18

  • 在该目录下进入cmd, 回车即可
  • springboot 菜鸟教程 springboot详细入门_Java_19

  • 输入java -jar springboot_01_quickstart1-0.0.1-SNAPSHOT.jar, 启动该项目
  • springboot 菜鸟教程 springboot详细入门_Java_20

  • Postman工具进行测试
  • springboot 菜鸟教程 springboot详细入门_SpringMVC_21

5. SpringBoot概述

5.1 起步依赖

我们使用 Spring Initializr 方式创建的 Maven 工程的的 pom.xml 配置文件中自动生成了很多包含 starter 的依赖,如下图

springboot 菜鸟教程 springboot详细入门_SpringBoot_22

  • 进入spring-boot-starter-parent进行查看
  • 可以看到spring-boot-starter-parent的父工程为spring-boot-dependencies,进行查看,可以发现很多依赖都已经进行了配置。

springboot 菜鸟教程 springboot详细入门_SpringMVC_23

  • 进入spring-boot-starter-web进行查看
  • springboot 菜鸟教程 springboot详细入门_SpringBoot_24

  • 进入spring-boot-starter-test进行查看
  • springboot 菜鸟教程 springboot详细入门_Spring_25

这些依赖就是启动依赖

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>