当前位置: 首页 > news >正文

SpringBoot:SpringBoot简介与快速入门(1)

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创建新模块
    在这里插入图片描述

  • 选择 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 工程的构建
    在这里插入图片描述

  • 项目创建结果如下
    在这里插入图片描述

注意:

  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 启动测试

在这里插入图片描述

在这里插入图片描述

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 为什么要快速启动?

以后我们和前端开发人员协同开发,而前端开发人员需要测试前端程序就需要后端开启服务器,这就受制于后端开发人员。为了摆脱这个受制,前端开发人员尝试着在自己电脑上安装 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 包也是有问题的。

在这里插入图片描述

4.3 SpringBoot项目启动

  • 进入springboot_01_quickstart1-0.0.1-SNAPSHOT.jar所在的目录
    在这里插入图片描述
    在这里插入图片描述

  • 在该目录下进入cmd, 回车即可h

  • 输入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>
http://www.lryc.cn/news/20874.html

相关文章:

  • RabbitMQ学习(十一):RabbitMQ 集群
  • 学渣适用版——Transformer理论和代码以及注意力机制attention的学习
  • 网上这么多IT的培训机构,我们该怎么选?
  • 数据结构与算法—跳表(skiplist)
  • 【C++】5.C/C++内存管理
  • 一文让你彻底理解关于消息队列的使用
  • 条件期望3
  • 第四届蓝桥杯省赛 C++ B组 - 翻硬币
  • linux shell 入门学习笔记14 shell脚本+数学计算
  • ESP32设备驱动-MAX30100心率监测传感器驱动
  • RTD2169芯片停产|完美替代RTD2169芯片|CS5260低BOM成本替代RTD2169方案设计
  • urho3d数据库
  • 141. 周期
  • Windows下命令执行绕过技巧总结(渗透测试专用)
  • mindspore的MLP模型(多层感知机)
  • 【论文极速读】VQ-VAE:一种稀疏表征学习方法
  • Flask-Blueprint
  • png图片转eps格式
  • English Learning - L2 语音作业打卡 Day2 2023.2.23 周四
  • 低频量化之 可转债 配债 策略数据 - 全网独家
  • 论文阅读_DALLE-2的unCLIP模型
  • 软件测试5年,历经3轮面试成功拿下华为Offer,24K/16薪不过分吧
  • 【软件工程】课程作业(三道题目:需求分析、概要设计、详细设计、软件测试)
  • 05 DC-AC逆变器(DCAC Converter / Inverter)简介
  • 带你深层了解c语言指针
  • 2-MATLAB APP Design-下拉菜单栏的使用
  • 七、HTTPTomcatServlet
  • LeetCode 热题 C++ 198. 打家劫舍
  • C语言学习笔记——程序环境和预处理
  • 「JVM 高效并发」Java 内存模型