一、Spring Boot 简介
Spring Boot = Spring + Spring MVC 的"快速开发脚手架"
核心特点
-
✅ 简化 XML 配置
-
✅ 简化 Maven 依赖管理
-
✅ 内嵌 Tomcat(无需外部容器)
-
✅ 约定优于配置
⚠️ 注意:Spring Boot 不是对 Spring 的功能增强,而是提供更快、更简洁的开发方式。
二、Spring Boot 入门案例
1️⃣ pom.xml 配置
① 继承 Spring Boot 父工程
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- 从仓库查找父工程 -->
</parent>
② 添加 Web 启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2️⃣ Controller 示例
@RestController
@RequestMapping("/hello")
public class HelloController {
@GetMapping
public String hello() {
return "Hello Spring Boot!";
}
}
3️⃣ 启动类(核心)
package com.hg;
@SpringBootApplication
public class SpringbootHelloworldApp {
public static void main(String[] args) {
SpringApplication.run(SpringbootHelloworldApp.class, args);
}
}
✅ 启动类所在包必须是 controller / service / mapper 的父包
三、Spring Boot Starter(启动器)
1️⃣ 什么是 Starter?
Starter = 依赖 + 自动配置类的集合
2️⃣ 命名规范
| 类型 | 命名规则 | 示例 |
|---|---|---|
| 官方 | spring-boot-starter-模块名 |
spring-boot-starter-web |
| 第三方 | 模块名-spring-boot-starter |
mybatis-spring-boot-starter |
四、Spring Boot 配置文件
1️⃣ application.properties
server.port=8090
server.servlet.context-path=/springboot_helloworld
2️⃣ application.yml(推荐)
server:
port: 8090
servlet:
context-path: /springboot_helloworld
✅ YAML 语法规则
| 符号 | 含义 |
|---|---|
. |
改为 : |
= |
改为 :(冒号+空格) |
| 缩进 | 必须使用空格(不能用 Tab) |
五、Spring Boot 发布方式(了解)
✅ 方式一:Jar(主流)
① 添加插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
② 打包
mvn package
③ 运行
java -jar xxx.jar
✅ 方式二:War(传统部署)
① 设置打包方式
<packaging>war</packaging>
② 修改 Tomcat 依赖范围
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
③ 改造启动类
@SpringBootApplication
public class SpringBootHelloworldApp extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringBootHelloworldApp.class);
}
}
④ 部署
-
将 war 放入 Tomcat 的
webapps -
启动 Tomcat
六、Spring Boot 整合全局异常处理
1️⃣ 非前后端分离(了解)
@Component
public class GlobalExceptionResolver implements HandlerExceptionResolver {
// 传统方式
}
2️⃣ 前后端分离(重点)
@RestControllerAdvice
public class GlobalExceptionResolver {
@ExceptionHandler(Exception.class)
public Map<String, Object> exceptionResolver() {
Map<String, Object> map = new HashMap<>();
map.put("code", 500);
map.put("msg", "服务器异常");
return map;
}
}
✅ 企业开发首选
七、Spring Boot 整合 Junit
1️⃣ 添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2️⃣ 测试类写法
@SpringBootTest
public class SpringbootJunitTest {
@Autowired
private UserService userService;
@Test
public void test() {
userService.save();
}
}
✅ 对比总结
| 场景 | 注解 |
|---|---|
| Spring | @RunWith(SpringJUnit4ClassRunner.class)+ @ContextConfiguration |
| Spring Boot | @SpringBootTest |
八、Spring Boot 多环境配置(重点)
1️⃣ 多环境文件命名
application-dev.yml
application-test.yml
application-prod.yml
2️⃣ 各环境示例
# application-dev.yml
server:
port: 8081
# application-test.yml
server:
port: 8082
# application-prod.yml
server:
port: 8083
3️⃣ 激活环境
# application.yml
spring:
profiles:
active: dev
九、Spring Boot 整合 Logback
1️⃣ 默认支持
Spring Boot 已内置 Logback,无需额外依赖。
2️⃣ logback.xml 示例
<configuration>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
✅ 总结(面试 & 实战高频)
| 模块 | 核心点 |
|---|---|
| 启动类 | @SpringBootApplication |
| 配置文件 | yml 优先 |
| Starter | 官方 / 第三方命名规范 |
| 发布 | Jar 为主 |
| 异常 | @RestControllerAdvice |
| 测试 | @SpringBootTest |
| 多环境 | spring.profiles.active |
📌 适合人群:Spring Boot 初学者 / 复习者
📌 文章用途:CSDN 博客 / 学习笔记 / 面试速查
如果你需要 配套 Demo 工程结构图 / GitHub 模板 / 面试题版总结,可以在评论区告诉我 👍