从今天开始,我们将开始学习一个新的系列,那就是在项目中用得非常广泛的一个框架 —— Spring Boot,我们会循序渐进地介绍 Spring Boot 的方方面面,包括理论和实战,也会介绍和Spring Boot一些热点面试题。
概论
本文是Spring Boot 专题的第一篇,我们会用最快捷、最简单的方式动手搭建一个 Spring Boot 的Web应用。
生成项目
生成一个 Spring Boot 项目有很多种方式,如果你不嫌麻烦,你完全可以手动创建一个一般目录结构的 Web 项目,然后在 pom.xml
中引入 Spring Boot 相关的依赖,但是这非常枯燥无味,所以我们一般不会这么做。
抛开手动创建项目,有两种方式自动创建一个 Spring Boot 项目:
-
使用 Spring 官方提供的 Spring Initializr 网页工具
-
使用我们的开发工具 IDEA
其实 两种方式本质都是一样,从IDEA的截图我们也可以看出 IDEA使用的也是 Spring Initializr 创建项目的
相关的依赖我们可以在界面中选择,也可以随后在 pom.xml
中引入。
为了更容易理解,依赖这里我们什么都不选,在后面具体的模块中再引入。
项目结构和配置
上面的项目创建后,Spring Boot 相关的依赖下载需要一些时间。
因为我们第一步中选择的是用 Maven 构建项目,所以可以看到我们的项目是一个标准的 Maven 项目:
我们可以浏览一下自动生成的 Maven 配置文件,里面的内容非常简单。
首先是 Maven 项目中的父级项目配置:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.4</version>
<relativePath/>
</parent>
什么是父级项目配置,我们后面的章节会深入学习。
除了 Maven 配置,在 resources 目录下还生成了一个 Spring Boot 的主配置文件,里面只有一行配置:
可以看到,自动生成的 Spring Boot 项目结构和配置都非常的简洁
。
应用配置
自动生成的项目给我们生成了一个应用的启动类:
@SpringBootApplication
public class SkybootApplication {
public static void main(String[] args) {
SpringApplication.run(SkybootApplication.class, args);
}
}
这个类被一个Spring Boot 最最核心的注解 @SpringBootApplication
修饰,表示这个类作为 Spring Boot 应用程序的入口点。
可以说这里是Spring Boot 长城的起点
。
这个类的main方法只有一行代码,运行这个main方法,就可以启动我们的 Web 项目。
我们先不用做任何配置,就可以启动项目了!运行SkybootApplication.java
日志中可以看到,项目启动了一个Tomcat服务器,使用的端口号是默认的8080:
TomcatWebServer : Tomcat started on port 8080 (http) with context path ''
SkybootApplication : Started SkybootApplication in 1.847 seconds (process running for 2.486)
访问 localhost:8080
就可以进入下面的页面了:
显示404空白页报错是因为我们没有配置任何控制器和页面。
配置 Spring MVC
接下来我们使用Spring MVC,定义一个控制器,我们需要引入相关的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Spring Boot 中各种starter也是我们后面学习的内容之一。
定义一个 Controller,里面定义了一个REST API:
@RestController
public class SkyController {
@GetMapping("/hello")
public String hello(){
return "<h1>兰亭序咖啡的Spring Boot专栏</h1>";
}
}
总结
到这里,我们快速搭建了一个最简单的基于 Spring Boot 的Web 应用。
回头看看我们做了什么:
- 用 Spring Initializr 自动创建了一个Spring Boot 项目
- 引入了Spring MVC的依赖(3行配置)
- 编写了一个控制器(5行代码)
然后,我们运行启动类 SkybootApplication.java
就成功把一个Web项目创建并运行起来了。
只有区区几行配置和代码!
想想以前没有 Spring Boot 时,我们要配置一个 Web 项目需要做很多枯燥乏味的工作:
- 创建项目结构
- 引入各种依赖
- 安装和配置Tomcat
- 打包应用,部署到Tomcat中,启动Tomcat
- ……
一顿操作下来,一两天过去了,再对比我们Spring Boot 搭建一个 Web 应用……