写点什么

SpringBoot 初识

  • 2022 年 9 月 24 日
    黑龙江
  • 本文字数:2851 字

    阅读完需:约 9 分钟

案例引入

SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。


使用了 Spring 框架后已经简化了我们的开发。而 SpringBoot 又是对 Spring 开发进行简化的,可想而知 SpringBoot 使用的简单及广泛性。既然 SpringBoot 是用来简化 Spring 开发的,那我们就先回顾一下,以 SpringMVC 开发为例:


  1. 创建工程,并在 pom.xml 配置文件中配置所依赖的坐标


  2. 编写 web3.0 的配置类

  3. 作为 web 程序,web3.0 的配置类不能缺少,而这个配置类还是比较麻烦的,代码如下


  4. 编写 SpringMVC 的配置类



做到这只是将工程的架子搭起来。要想被外界访问,最起码还需要提供一个 Controller 类,在该类中提供一个方法。


  1. 编写 Controller



从上面的 SpringMVC 程序开发可以看到,前三步都是在搭建环境,而且这三步基本都是固定的。SpringBoot 就是对这三步进行简化了。接下来我们通过一个入门案例来体现 SpingBoot 简化 Spring 开发。

快速入门

SpringBoot 开发起来特别简单,分为如下几步:


  • 创建新模块,选择 Spring 初始化,并配置模块相关基础信息

  • 选择当前模块需要使用的技术集

  • 开发控制器类

  • 运行自动生成的 Application 类


知道了 SpringBoot 的开发步骤后,接下来我们进行具体的操作

创建新模块

  • 点击 + 选择 New Module 创建新模块


  • 选择 Spring Initializr ,用来创建 SpringBoot 工程

  • 以前我们选择的是 Maven ,今天选择 Spring Initializr 来快速构建 SpringBoot 工程。而在 Module SDK 这一项选择我们安装的 JDK 版本。


  • SpringBoot 工程进行相关的设置

  • 我们使用这种方式构建的 SpringBoot 工程其实也是 Maven 工程,而该方式只是一种快速构建的方式而已。


  • 注意:打包方式这里需要设置为 Jar

  • 选中 Web,然后勾选 Spring Web

  • 由于我们需要开发一个 web 程序,使用到了 SpringMVC 技术,所以按照下图红框进行勾选

  • 下图界面不需要任何修改,直接点击 Finish 完成 SpringBoot 工程的构建


经过以上步骤后就创建了如下结构的模块,它会帮我们自动生成一个 Application 类,而该类一会再启动服务器时会用到



==注意:==

  1. 在创建好的工程中不需要创建配置类

  2. 创建好的项目会自动生成其他的一些文件,而这些文件目前对我们来说没有任何作用,所以可以将这些文件删除。

  3. 可以删除的目录和文件如下:

  4. .mvn

  5. .gitignore

  6. HELP.md

  7. mvnw

  8. mvnw.cmd

创建 Controller

com.itheima.controller 包下创建 BookController ,代码如下:


@RestController@RequestMapping("/books")public class BookController {
@GetMapping("/{id}") public String getById(@PathVariable Integer id){ System.out.println("id ==> "+id); return "hello , spring boot!"; }}
复制代码

启动服务器

运行 SpringBoot 工程不需要使用本地的 Tomcat 和 插件,只运行项目 com.itheima 包下的 Application 类,我们就可以在控制台看出如下信息


进行测试

使用 Postman 工具来测试我们的程序



通过上面的入门案例我们可以看到使用 SpringBoot 进行开发,使整个开发变得很简单,那它是如何做到的呢?


要研究这个问题,我们需要看看 Application 类和 pom.xml 都书写了什么。先看看 Applicaion 类,该类内容如下:


@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}
复制代码


这个类中的东西很简单,就在类上添加了一个 @SpringBootApplication 注解,而在主方法中就一行代码。我们在启动服务器时就是执行的该类中的主方法。


再看看 pom.xml 配置文件中的内容


<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>        <!--指定了一个父工程,父工程中的东西在该工程中可以继承过来使用-->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.5.0</version>    </parent>    <groupId>com.itheima</groupId>    <artifactId>springboot_01_quickstart</artifactId>    <version>0.0.1-SNAPSHOT</version>
<!--JDK 的版本--> <properties> <java.version>8</java.version> </properties> <dependencies> <!--该依赖就是我们在创建 SpringBoot 工程勾选的那个 Spring Web 产生的--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--这个是单元测试的依赖,我们现在没有进行单元测试,所以这个依赖现在可以没有--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
<build> <plugins> <!--这个插件是在打包时需要的,而这里暂时还没有用到--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
复制代码


我们代码之所以能简化,就是因为指定的父工程和 Spring Web 依赖实现的。

SpringBoot 的安装问题

下载速度的问题

第一次使用 SpringBoot 的时候,会下载很多依赖,如果我们不使用国内源的话就会下得很慢。


我们先找到我们的 setting.xml,然后加一个镜像:


<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0                          https://maven.apache.org/xsd/settings-1.0.0.xsd">      <mirrors>        <mirror>              <id>alimaven</id>              <name>aliyun maven</name>              <url>http://maven.aliyun.com/nexus/content/groups/public/</url>              <mirrorOf>central</mirrorOf>                  </mirror>        </mirrors></settings>
复制代码


配置完成之后,记得在你的 IDEA 中使用:


兼容性问题

截至文章发布,springboot 在官网上的最低创建版本是 2.6.10。这个最低版本跟 tomcat9 及以上兼容。


也就是说如果你现在使用的是 tomcat8,那么就会因为兼容性问题,无法使用 springboot


网上有人的解决办法:在 pom.xml 文件中指定低一点版本的 tomcat 内嵌容器

这种是不成立的,你 Springboot 里面下载的依赖其本身就是互相兼容的,你去单独修改一个的版本,不能解决兼容性问题。


发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2022.07.31 加入

还未添加个人简介

评论

发布
暂无评论
SpringBoot初识_9月月更_十八岁讨厌编程_InfoQ写作社区