Boot1️⃣简介 & 入门
1、web 技术发展
含义 | 示例技术 | |
---|---|---|
原生 | 对不同的应用场景,重复开发 | 传统 Java Web |
框架 | 封装常见应用场景,通过配置方式引入 | Structs |
轻量级框架 | 根据实际生产需要,对框架的实用功能进行重构 | Spring MVC |
一站式解决方案 | 提高效率,减少繁杂配置,提倡约定大于配置 | Spring Boot |
2、Spring Boot
Spring Boot 是一个基于 Spring 的 Web 框架,
目的是简化 Spring 应用的搭建和开发。
- 集大成者:基于 Spring 整合现有成熟框架。
- 开箱即用:引入 Starter,无需配置即可运行。
- 约定大于配置:开发者可规定配置,若无规定则采用默认配置。
- 提供生产就绪功能,如指标、运行状况检查和外部化配置。
核心功能
- 起步依赖:简化项目依赖(parent、Starter)
- 自动配置(Application 启动类)
- 辅助功能:如内置 Tomcat 服务器。
3、入门
Hint:注意 IDEA、Maven、Spring Boot 的兼容性。
参考版本:
- JDK 1.8
- Maven 3.6.3
- Spring Boot 2.7.0
- IntelliJ IDEA 2020.3
3.1、创建项目
Hint:要求联网
3 种创建方式:
- 官网:生成后导入到 IDEA 中
- IDEA:创建项目
- 手动搭建
3.1.1、官网
-
项目信息
-
依赖项
-
生成项目 zip 文件
-
解压,导入 IDEA
Hint
- IDEA 2019 前:
Import Project
导入 - IDEA 2019 后:
Open
导入
3.1.2、IDEA
① Spring Initializr
URL 表示 Spring Boot 的生成网址,
相当于 IDEA 调用了官网的生成功能。
通常有以下选择:
-
Spring
- Default:https://start.spring.io
- Spring Boot:https://start.springboot.io
② 依赖项
Hint:若选取不同的 URL
具有不同的依赖项界面,且生成的 Spring Boot 工程(配置文件)也有所不同。
-
Spring 和 Spring Boot:Spring 收录的依赖项
-
阿里云:在 Spring 官网的基础上,添加了国内的流行框架。
3.1.3、手动
根据前 2 种方法生成的项目结构,手动创建 Spring Boot 项目。
-
创建 Maven 项目
-
导入依赖(参考
pom.xml
)- modelVersion
- parent
- gav
- properties
- dependencies
-
引导类(
XxxApplication
)@SpringBootApplication public class XxxApplication { public static void main(String[] args) { SpringApplication.run(XxxApplication.class, args); } }
3.2、编写接口
Hint:在引导类所在目录下,新建 controller 包。
-
编写接口
@RestController public class HelloController { @GetMapping("/hello") public String sayHello() { System.out.println("hello"); return "hello!"; } }
-
启动 Application 引导类
-
发起请求:观察控制台,打印 DispatcherServlet 初始化信息。
此时,一个可用的 Spring Boot 项目搭建完成。
3.3、说明
3.3.1、项目结构
-
main
- java
- Application:引导类
- resources
- application.properties:核心配置
- java
-
test
- ApplicationTests:测试类
-
pom.xml:Maven 依赖
3.3.2、打包
Hint:打包前先 clean
-
Maven package,等待 IDEA 打 jar 包
-
打包失败的解决方案:pom.xml 的 plugin 配置
-
添加 plugin:跳过单元测试的编译和运行(原因是单元测试可能存在问题)
-
为 plugin 添加 version,值为 Spring Boot 版本号。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- 跳过单元测试 --> <skipTests>true</skipTests> </configuration> </plugin>
-
3.3.3、banner
banner:Spring Boot 项目启动时打印的 logo
自定义启动 banner 步骤:
- banner 在线生成
- 在 Spring Boot 项目 resources 目录下,新建 banner.txt 粘贴内容即可。