1.1 SpringBoot的简介

  • Spring框架是一个轻量级的框架,是为解决企业应用程序开发的复杂性而创建的开源框架。核心通过控制反转(IOC)和面向切面编程(AOP)的思想进行更轻松企业级应用开发,取代了EJB臃肿、低效的开发模式。

Spring框架是轻量级,但它的配置却重量级的,开发软件需要配置大量的各种XML文件。随着实际生产中敏捷开发的需要,Spring使用注解替代了XML配置文件进行项目开发。因此Pivotal团队基于Spring开发了全新的Spring Boot框架。

  • Spring Boot框架

(1)Spring Boot可快速构建独立的Spring应用
Spring Boot是一个依靠大量注解实现自动化配置的全新框架。在构建Spring应用时只需要添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,无须额外手动添加配置,快速构建出一个独立的Spring应用。
(2)直接嵌入Tomcat、Jetty等服务器
传统的项目部署时,通常会将应用打成war包的形式部署到Tomcat、Jetty等服务器上。Spring Boot框架嵌入了Tomcat 、Jetty等服务器,而且可以自动将项目打包,并在项目运行时部署到服务器。
(3)极少的代码生成和XML配置
Spring Boot框架内部已经实现了与Spring以及其它常用的第三方库的整合连接,并提供了默认最优化的整合配置,使用时基本上不需要额外生成配置代码和XML配置文件。在需要自定义配置的情况下,Spring Boot提倡使用Java Config(Java配置类)替换传统的XML配置方式。

1.2 SpringBoot的入门

1.2.1 构建Spring Boot项目

IDEA可以使用Spring Initializr构建一个基于Maven的Web项目,它提供了基本的项目结构,能够帮助我们快速构建一个基础的Spring Boot项目。
1、创建Spring Boot项目
(1)打开IDEA,选择【File - New - Project】新建项目,在弹出的窗口中,选择【Spring Initializr】,如图2.2.1 - 1所示。
image.png
图2.2.1 - 1 创建Spring Boot项目
(2)设置项目坐标,如图2.2.1 - 2所示。
image.png
图2.2.1 - 2 设置项目坐标
(3)选择依赖Jar包,如图2.2.1 - 3所示。
image.png
图2.2.1 - 3 选择依赖Jar包
(4)完成创建,项目创建完成后目录结构如图2.2.1 - 4所示。
image.png
图2.2.1 - 4 项目目录结构
2、依赖管理
打开依赖管理文件pom.xml,查看依赖管理。
(1)统一父类管理
image.png
标签的spring-boot-starter-parent依赖是Spring Boot框架的统一父类管理依赖,添加该依赖后就可以使用Spring Boot的相关特性。如指定的Spring Boot版本号2.6.2, 对于其他启动器依赖项进行统一管理,不需要指定Spring Boot版本号,自动与Spring Boot 2.6.2相匹配。
(2)统一Web依赖管理
image.png
Spring-boot-starter-web启动器主要作用是提供Web开发所需要的底层所有依赖文件,它对Web开发场景所需要的依赖文件进行统一管理,项目引入了该启动器后,而不需要额外引入Tomcat服务器、slf4j日志管理等依赖文件。当然这些引用的文件版本号由统一父类依赖进行管理。
(3)热部署依赖启动器
在开发过程中,通常会对一段业务代码不断地修改测试,在修改之后往往需要重启服务,有些服务需要加载很久才能启动成功,这种不必要的重复操作极大降低了程序开发效率。Spring Boot框架提供了热部署的启动器,在项目中添加热部署启动器,无须开发人员手动重启服务。
image.png
3、项目启动。
打开项目启动类,该类名称为项目名+Application,存放在src/main/java/组织ID.项目ID包下,查看启动程序代码。
image.png

  • @SpringBootApplication注解是Spring Boot框架的核心注解,该注解用于表明被注解的类为项目的主程序启动类。
  • SpringApplication.run()方法启动主程序类。

启动main()方法,项目启动成功后,查看控制台打印的信息,如图2.2.1 - 5所示。
image.png
图2.2.1 - 5 项目正常启动信息
4、单元测试
在实际开发中,每当完成一个功能接口或业务方法的编写后,通常都会借助单元测试验证该单元是否正确。Spring Boot对项目的单元测试提供了很好的支持。
(1)添加单元测试依赖启动器
image.png
其中,spring-boot-starter-test启动器在创建项目时会自动加入。
(2)编写单元测试类和测试方法
测试类编写在src/test/java目录下,项目创建时,会在测试目录下自动创建与项目启动类对应的单元测试类。例如SpringDemoApplicationTests是自动生成的单元测试类,下面是编写DemoTest测试类的代码内容。
image.png

1.2.2 Spring Boot核心配置

1、全局配置文件
全局配置文件能够对一些默认配置值进行修改,如改变应用服务器的端口号等。Spring Boot全局配置文件有application.properties和application.yml2种格式文件,该文件存放在src/main/resource目录下。
YAML以数据为核心,是一种配置更简洁、更为直观且容易被计算机识别的数据序列化格式,一般配置文件采用YAML格式文件,properties文件和yaml文件格式对比,如图2.2.2 - 1 所示。
image.pngimage.png
图2.2.2 - 1 properties文件格式和yaml文件格式对比
2、YAML文件格式
将src/main/resource目录下application.properties文件扩展名修改为.yml,全局配置文件就是YAML文件格式了。YAML文件格式如下:

  • 使用(空格空格)缩进控制层级关系,下一层级相对上一层级空2格,如图2.2.2 - 2所示。
  • 使用key:(空格)value格式配置属性,如图2.2.2 - 2所示。
  • value的值可以数字、字符串、布尔等普通数据类型,字符串类型不需要加双引号,如图2.2.2 - 2所示。

image.png
图2.2.2 - 2 YAML文件格式