扫一扫


第
3 
章Spring 
Boot 
入门

视频讲解

学习目的与要求

本章首先介绍什么是SpringBoot,然后介绍SpringBoot应用的开发环境,最后介绍如何
快速地构建一个SpringBoot应用。通过本章的学习,读者应该掌握如何构建SpringBoot应
用的开发环境以及SpringBoot应用。

本章主要内容

●SpringBoot概述
● 快速地构建SpringBoot应用
从前两章的学习可知,Spring框架非常优秀,问题在于“配置过多”,造成开发效率低、部署流
程复杂以及集成难度大等问题。为了解决上述问题,SpringBoot应运而生。在编写本书时, 
Sprnot的最新正式版本是3.2, 0.

igBo0.读者在测试本书示例代码时建议使用3.2或更高版本。

3.1 
SpringBot概述
.3.1.1 什么是Spring 
Boot
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是简化新Spring应用的初始
搭建以及开发过程。使用Spt框架可以做到专注于Spg应用的开发,无须过多关
注样板化的配置。
ringBoorin

在SpringBoot框架中,使用“约定优于配置(ConventionOverConfiguration,COC)”的理
念。针对企业应用开发,SpringBoot提供了符合各种场景的spring-boot-starter自动配置依
赖模块,这些模块都是基于“开箱即用”的原则,进而使企业应用开发更加快捷和高效。可以
说,SpringBoot是开发者和Spring框架的中间层,目的是帮助开发者管理应用的配置,提供
应用开发中常见配置的默认处理(即约定优于配置),简化Spring应用的开发和运维,降低开
发者对框架的关注度,使开发者把更多精力放在业务逻辑代码上。通过“约定优于配置”的原
则,SpringBoot致力于在蓬勃发展的快速应用开发领域成为领导者。

.3.1.2 Spring 
Boot 
的优点
SpringBoot之所以能够应运而生,是因为它具有以下优点。

(1)使编码变得简单:推荐使用注解。
(2)使配置变得快捷:具有自动配置、快速构建项目、快速集成第三方技术的能力。
(3)使部署变得简便:内嵌Tomcat、Jety等Web容器。
(4)使监控变得容易:自带项目监控。
.3.1.3 Spring 
Boot 
的主要特性
SpringBoot的主要特性如下。

. 
约定优于配置

SpringBoot遵循“约定优于配置”的原则,只需要很少的配置,大多数情况直接使用默认


第3 章 Spring Boot 入门 
67 
配置即可。
. 独立运行的Spring应用
SpringBoot可以以JAR包的形式独立运行。使用java-jar命令或者在项目的主程序中
执行main()方法运行SpringBoot应用(项目)。
. 内嵌Web容器
SpringBoot可以选择内嵌Tomcat、Jetty等Web容器,无须以WAR包形式部署应用。
. 提供starter简化Maven配置
SpringBoot提供了一系列的starterpom 简化Maven的依赖加载,基本上可以做到自动
化配置、高度封装、开箱即用。
. 自动配置Spring 
SpringBoot根据项目依赖(在类路径中的JAR包、类)自动配置Spring框架,极大地减少
了项目的配置。
. 提供准生产的应用监控
SpringBoot提供了基于HTTP、SSH、Telnet对运行的项目进行跟踪监控。
. 无代码生成和XML配置
SpringBoot不是借助于代码生成实现的,而是通过条件注解实现的,建议使用Java配置
和注解配置相结合的配置方式,这样方便、快捷。
3.2 第一个SpringBoot应用
.3.2.1 Maven 简介 
ApacheMaven是一个软件项目管理工具。基于项目对象模型(ProjectObjectModel, 
POM)的理念,通过一段核心描述信息管理项目构建、报告和文档信息。在Java项目中, 
Maven主要完成两项工作:①统一开发规范与工具;②统一管理JAR包。
Maven统一管理项目开发所需要的JAR 包,这些JAR 包不再包含在项目内(即不在lib 
目录下),而是存放于仓库中。仓库主要包括以下内容。
. 中央仓库
中央仓库存放开发过程中的所有JAR包,例如JUnit,可以通过互联网下载,下载地址为
http://mvnrepository.com。
. 本地仓库
本地仓库指本地计算机中的仓库。下载Maven 的本地仓库配置在“% MAVEN_ 
HOME%\conf\settings.xml”文件中,找到localRepository即可。
Maven项目首先从本地仓库中获取所需要的JAR包,当无法获取指定的JAR包时,本地
仓库将从远程仓库(中央仓库)中下载JAR包,并存入本地仓库以备将来使用。
.3.2.2 Maven 的pom.xml 
Maven是基于项目对象模型的理念管理项目的,所以Maven的项目都有一个pom.xml 
配置文件管理项目的依赖以及项目的编译等功能。
在MavenWeb项目中重点关注以下元素。
. properties元素
在<properties></properties>之间可以定义变量,以便在<dependency> </dependency>

68 
中引用,示例代码如下: 
<properties> 
<!-- Spring 版本号--> 
<spring.version>6.0.0</spring.version> 
</properties> 
<dependencies> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-core</artifactId> 
<version>${spring.version}</version> 
</dependency> 
</dependencies> 
. dependencies元素
<dependencies> </dependencies> 元素包含多个项目依赖需要使用的<dependency> 
</dependency>元素。
. dependency元素
在<dependency> </dependency> 元素内部通过<groupId> </groupId>、<artifactId> 
</artifactId>、<version></version>3个子元素确定唯一的依赖,也可以称为3个坐标。示例
代码如下: 
<dependency> 
<!--groupId 组织的唯一标识--> 
<groupId>org.springframework</groupId> 
<!--artifactId 项目的唯一标识--> 
<artifactId>spring-core</artifactId> 
<!--version 项目的版本号--> 
<version>${spring.version}</version> 
</dependency> 
. scope子元素
在<dependency></dependency>元素中有时使用<scope></scope>子元素管理依赖的部
署。<scope></scope>子元素可以使用以下5个值: 
1)compile(编译范围) 
compile是默认值,即默认范围。如果依赖没有提供范围,那么该依赖的范围就是编译范
围。编译范围的依赖在所有的classpath中可用,同时也会被打包发布。
2)provided(已提供范围) 
provided表示已提供范围,只有当JDK或者容器已提供该依赖时才可以使用。已提供范
围的依赖不是传递性的,也不会被打包发布。
3)runtime(运行时范围) 
runtime在运行和测试系统时需要,但在编译时不需要。
4)test(测试范围) 
test在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。该依
赖不会随项目发布。
5)system(系统范围) 
system 范围与provided范围类似,但需要显式提供包含依赖的JAR 包,Maven不会在
Repository中查找它。
.3.2.3 使用IntelliJ IDEA 快速构建Spring Boot 应用
IntelliJIDEA 简称IDEA,是Java编程语言的集成开发环境。IDEA 被业界公认为较好

第3 章 Spring Boot 入门 
69 
的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具
(Git、SVN 等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能可以说是超常的。
用户可以登录官网,根据操作系统下载相应的IntelliJIDEA。本书使用的是Windows 
Ultimate版ideaIU-2022.2.1(内置Java运行环境OpenJDK)。
下面详细讲解如何使用IDEA 集成开发工具快速构建一个SpringBootWeb应用,其具
体实现步骤如下。
. 新建SpringProject 
打开IDEA,选择File→New→Project命令,打开NewProject对话框。在该对话框的左
侧选择SpringInitializr选项,打开如图3.1所示的界面输入项目信息。
图3.1 输入项目信息
. 选择项目依赖
在图3.1中输入项目信息后,单击Next按钮,打开如图3.2所示的选择项目依赖界面。
在图3.2中选择项目依赖(如SpringWeb)后,单击Create按钮,即可完成SpringBootWeb应
用的创建。
. 编写测试代码
在ch3应用的src/main/java目录下创建com.ch.ch3.test包,并在该包中创建TestController 
类,代码如下: 
package com.ch.ch3.test; 
import org.springframework.web.bind.annotation.GetMapping; 
import org.springframework.web.bind.annotation.RestController; 
@RestController 
public class TestController { 
@GetMapping("/hello") 
public String hello() { 
return "您好,Spring Boot!"; 
} 
}

图3.选择项目依赖

2 

在上述代码中使用的@RestControler注解是一个组合注解,相当于SpringMVC中的
@Controler和@ResponseBody注解的组合,具体应用如下: 

(1)如果只是使用@RestControler注解Controler,则Controler中的方法无法返回
JSP 、HTML等视图,返回的内容就是return的内容。
(2)如果需要返回到指定页面,则需要使用@Controler注解。如果需要返回JSON 、
XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
. 
生成应用程序的App类

在ch3应用的ccch3包中自动生成了应用程序的App类Ch3Applcato

om.h.iin。这里省
略Ch3Application的代码。

. 
运行main方法启动SpringBot应用

运行Ch3Application类的mai控制台信息如图3.

n方法,3所示。


图3.启动SpgBot应用后的控制台信息

3 
rin

从控制台信息可以看到Tomcat的启动过程、SpringMVC的加载过程。
注意:Sp0内嵌了Tomc因此对于Spt应用不需要开发者配

ringBoot3.at10, ringBoo
置与启动Tomcat。

70 


第3章 SpringBoot入门
. 
测试SpringBoot应用

在启动SpringBoot应用后,默认访问地址为“htp://localhost:8080/,将项目路径直接(”) 设为根路径,这是SpringBoot的默认设置。因此,可以通过
“htp://localhost:8080/helo”测试应用(helo与测试类
图3.4所示。
r中的@G)对应),测试效果如
4 
ringB

TestControleetMapping("/helo"图3.访问Spot应用

.3.2.4 使用Spring 
Tool 
Suite 
快速构建Spring 
Boot 
应用
SpringTolSuite(STS)是一个定制版的Eclipse,专为Spring开发定制,方便创建、调试、运
行、维护Spring应用。通过该工具,可以很轻易地生成一个Spring工程,例如Web工程,最令人
兴奋的是工程中的配置文件都将自动生成,开发者再也不用关注配置文件的格式及各种配置了。
用户可以登录Sprig官网“hs://pig.o/tl”下载SprnosfrElpe,本书使用

ntpsrnioosigTolocis
的版本是sprn-olsie44.1.-4.0wnwnx64.efetatn

igto-ut--17.RELEASEe26.-i32.i32.86_sl-xrcig. 
jar(内置Java运行环境OpenJDK )。该版本与Eclipse一样,无须安装,解压即可使用。
下面详细讲解如何使用STS快速构建一个SpringBoot应用,其具体实现步骤如下。

. 
新建SpigStterPoject 

选择File→N(r) ew(n) →Spr(r) (a) ingSt(r) arterProject命令,5所示的NewSpringStarter

打开如图3.
Project对话框。


图3.jt对话框

5 
NewSpringStarterProec

. 
选择项目依赖

在图3.5中输入项目信息后,单击Nex打开如图3.ringStarter

t按钮,6所示的NewSpProjectDependencies对话框,在其中选择项目依赖,如Web。
单击图3.nish按钮, ringBootWeb应用的创建。

6中的Fi即可完成Sp

. 
编写测试代码

在ch3应用的src/mi/jva目录下创建cc.h3tst包,并在该包中创建TsCnrlr 
类,代码与3.3节中相同
an,
aom.hc.eetotoe

2.这里不再赘述。
. 
生成应用程序的App类

在ch3应用的ccch3包中自动生成了应用程序的App类Ch3Applcato

om.h.iin。这里省
略Ch3Application的代码。

71 


图3.选择项目依赖

6 . 
运行main方法启动SpringBot应用

运行Ch3Application类的mai控制台信息如图3.

n方法,7所示。


图3.启动Spot应用后的控制台信息

7 
ringB

. 
测试SpringBoot应用

在启动SpringBoot应用后,可以通过“htp://localhost:8080/helo”测试应用。

3.本章小结
3 

本章首先简单介绍了Spt应运而生的缘由,然后演示了如何使用IDEA和STS 
快速构建SpringBoot应用。
ringBooIDEA在业界被公认为较好的Java开发工具,本书后续章节都使用IDEA编写示例代码。
扫一扫
如果开发者要构建SpringBoot应用,可以根据实际工程需要选择合适的IDE 。


习题3
自测题1.Spring、SpringMVC 、SpringBoot三者有什么联系? 为什么要学习SpringBoot? 

2.在IDEA中如何快速构建SpringBoot的Web应用? 
72