黑河市网站建设_网站建设公司_后端工程师_seo优化
2026/1/7 15:54:23 网站建设 项目流程

SpringBoot简介

入门案例

回顾SpringMVC开发的步骤

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

  1. 编写 web3.0 的配置类

  1. 编写 SpringMVC 的配置类

  1. 编写 Controller 类

从上面的 SpringMVC 程序开发可以看到,前三步都是在搭建环境,而且这三步基本都是固定的。 SpringBoot 就是对这三 步进行简化了

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

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

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

  1. 开发控制器类

  1. 运行自动生成的Application类

做完 SpringBoot 的入门案例后,接下来对比一下 Spring 程序和 SpringBoot 程序。如下图

基于SpringBoot官网创建项目

SpringBoot项目快速启动

  1. 将 SpringBoot 工程打成 jar 包,该 jar 包运行不依赖于 Tomcat 和 Idea 这些工具也可以正常运行, 只是这个 jar 包在运行过程中连接和我们自己程序相同的 Mysql 数据库即可。
  2. SpringBoot 工程默认在pom.xml 中配置了如下插件

  1. 所以我们只需要使用 Maven 的 package 指令打包就会在 target 目录下生成对应的 jar 包。
  2. 进入 jar 包所在位置, 运行jar包

SpringBoot概述

SpringBoot 程序的优点

  1. 自动配置。 Spring 程序配置繁琐的问题
  2. 起步依赖。这个是用来解决 Spring 程序依赖设置繁琐的问题
  3. 辅助功能(内置服务器,...)。启动 SpringBoot 程序时使用 SpringBoot 内置的服务器

SpringBoot起步依赖

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

  1. 这是指定了父工程, 可以理解为模板工程

  • 进入到该父工程中,在该工程中我们可以看到配置内容结构如下图所示

  • properties 标签中定义了各个技术软件依赖的版本,我们就不用自己指定版本了。
  • 在 properties 中我们找 servlet 和 mysql 的版本如下图

  • dependencyManagement 标签是进行依赖版本锁定;如果我们工程需要那个依赖只需要引入依赖的 groupid 和 artifactId 不需要定义 version。
  • 而 build 标签中也对插件的版本进行了锁定,如下图

  1. springboot集成web开发的起步依赖

  • 进入到该依赖,查看 pom.xml 的依赖会发现它引入了如下的依赖

  • 里面的引入了 spring-web 和 spring-webmvc 的依赖,这就是为什么我们的工程中没有依赖这两个包还能正常使用 springMVC 中的注解的原因
  • 而依赖 spring-boot-starter-tomcat ,从名字基本能确认内部依赖了 tomcat,所以我们的工程才能正常启动。
  • 起步依赖极大简化了我们的依赖配置

SpringBoot程序主启动类

创建的每一个 SpringBoot 程序时都包含一个类似于下面的类,我们将这个类称作引导类

  • SpringBoot 在创建项目时,采用jar的打包方式
  • SpringBoot 的引导类是项目的入口,运行 main 方法就可以启动项目
  • 因为我们在pom.xml 中配置了 spring-boot-starter-web 依赖, 运行 main 方法就可以使用内置 tomcat 启动咱们的工程

切换web服务器

现在我们启动工程使用的是 tomcat 服务器,那能不能不使用 tomcat 而使用 jetty 服务器。要切换 web 服务器就需要将默认的 tomcat 服务器给排除掉,怎么排除呢? 使用exclusion 标签

  1. Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty
  2. 对于我们来说, 开发项目很简单, 需要什么技术就把技术对应的起步依赖加到pom文件中, 如果要切换技术也简单, 先排除要替换的依赖, 再引入新的依赖, 我们就可以更专注于业务开发

基础配置

配置文件格式

SpringBoot提供了多种属性配置方式

  1. application.properties

  1. application.yml

  1. application.yaml

SpringBoot配置文件加载顺序(了解)

application.properties > application.yml > application.yaml

  1. SpringBoot核心配置文件名为application
  2. SpringBoot内置属性过多,且所有属性集中在一起修改,在使用时,通过提示键+关键字修改属性

在配合文件中如果没有提示,可以使用以下方式解决

yaml

YAML (YAML Ain't Markup Language),一种数据序列化格式

优点:

  • 容易阅读
  • 容易与脚本语言交互
  • 以数据为核心,重数据轻格式

YAML文件扩展名

  • ·yml(主流)
  • .yaml

yaml语法规则

  1. 大小写敏感
  2. 属性层级关系使用多行描述,每行结尾使用冒号结束
  3. 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  4. 属性值前面添加空格 (属性名与属性值之间使用冒号+空格作为分隔)
  5. # 表示注释
  6. 核心规则: 数据前面要加空格与冒号隔开

yaml数组数据

数组数据在数据书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

yaml数据读取

使用@Value读取单个数据,属性名引用方式: ${一级属性名.二级属性名...}

封装全部数据到Environment对象

自定义对象封装指定数据

如果自定义对象封装数据, 出现警告, 可以添加该依赖解决

多环境启动

以后在工作中,对于开发环境、测试环境、生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线上环境的。

来回的修改配置会很麻烦,而 SpringBoot 给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可。不 同类型的配置文件多环境开发的配置都不相同,接下来对不同类型的配置文件进行说明

在 application.yml 中使用 --- 来分割不同的配置,内容如下

最新用来起名字的配置项是

properties文件多环境启动

  1. 主启动配置文件application.properties

  1. 环境分类配置文件application-pro.properties

  1. 环境分类配置文件application-dev.properties

  1. 环境分类配置文件application-test.properties

带参数启动SpringBoot

参数加载优先顺序

  1. 参看: https://docs.spring.io/spring-boot/redirect.html?page=spring-boot-features#bootfeatures-external-config
  2. 如果使用了多种方式配合同一个配置项,优先级高的生效。

Maven与SpringBoot多环境兼容

  1. Maven中设置多环境属性

  1. SpringBoot中引用Maven属性

  1. 对资源文件开启对默认占位符的解析

  1. Maven打包加载到属性,打包顺利通过

配置文件分类

我们开发完毕后需要测试人员进行测试,由于测试环境和开发环境的很多配置都不相同,所以测试人员在运 行我们的工程时需要临时修改很多配置,如下

针对这种情况, SpringBoot 定义了配置文件不同的放置的位置;而放在不同位置的优先级时不同的。

SpringBoot 中4级配置文件放置位置:

作用:

  1. 1级与2级留做系统打包后设置通用属性
  2. 3级与4级用于系统开发阶段设置通用属性

在这里我们只演示不同级别配置文件放置位置的优先级。

  1. SpringBoot 工程,目录结构如下

  1. 在 resources 下创建一个名为 config 的目录,在该目录中创建 application.ym1 配置文件,而在该配置文件中将端口号设置为 81,内容如下

  1. 而在 resources 下创建的 application.ym] 配置文件中并将端口号设置为 80,内容如下

  1. 运行启动引导类,可以在控制台看到如下日志信息

  1. 通过这个结果可以得出类路径下的 config 下的配置文件优先于类路径下的配置文件
  2. 要验证4级,按照以下步骤完成
  3. 将工程打成 jar 包, 在硬盘上找到 jar 包所在位置

  1. 在 jar 包所在位置创建 config 文件夹,在该文件夹下创建 application.yml 配置文件,将端口号设置为 82 , 然后运行程序, 运行后日志信息如下

  1. 通过这个结果可以得出file: config 下的配置文件优先于类路径下的配置文件

整合第三方技术

整合junit

回顾 Spring 整合 junit

使用 @ RunWith 注解指定运行器,使用 @ContextConfiguration 注解来指定配置类或者配置文件。

SpringBoot 整合 junit 特别简单,分为以下三步完成

  1. 在测试类上添加 SpringBootTest 注解
  2. 使用 @Autowired 注入要测试的资源
  3. 定义测试方法进行测试

@SpringBootTest注解

  1. 位置: 测试类定义上方
  2. 作用: 设置JUnit加载的SpringBoot启动类
  3. 范例:

  1. 相关属性
  • classes: 设置SpringBoot启动类
  • 如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定
  • 如果测试类所在包和启动类所在包不一致, 就要通过classes属性指定SpringBoot启动类

  • 为什么测试类和启动类的包要一致呢?

JUnit会把SpringBoot启动类作为Spring配置文件加载, 如果包不一致, 就找不到了

整合mybatis

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

  1. 选择当前模块需要使用的技术集(MyBatis、MySQL)

  1. 设置数据源参数

  1. 定义数据层接口与映射配置

  1. 测试类中注入dao接口,测试功能

实现ssm整合

SpringBoot 到这就已经学习完毕,接下来我们将学习 SSM 时做的三大框架整合的案例用 SpringBoot 来实现一下。我们完成这个案例基本是将之前做的拷贝过来,修改成 SpringBoot 的即可,主要从以下几部分完成

  1. pom.xml
  • 配置起步依赖,必要的资源坐标(druid)
  1. application.yml
  • 设置数据源、端口等
  1. 配置类
  • 全部删除
  1. dao
  • 设置 @Mapper
  1. 测试类
  2. 页面
  • 放置在resources目录下的static目录中

创建 SpringBoot 工程,在创建工程时需要勾选 web、 mysql、 mybatis,工程目录结构如下

由于我们工程中使用到了 Druid ,所以需要导入 Druid 的坐标

代码拷贝

需要修改的内容如下:

  • config 包下的是配置类可以直接删除
  • dao 包下的接口中添加 @Mapper 注解
  • BookServiceTest 测试需要改成 SpringBoot 格式

配置文件

在 a pplication.yml 配置文件中需要配置如下内容

静态资源

在 SpringBoot 程序中是没有 静态资源需要放在 webapp 目录的,那么在 SpringBoot 程序中静态资源需要放在什么位置呢? resources 下的 static 下,如下图所示

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询