第1篇 基础篇
第1章 Spring Boot概述及其环境搭建 2
视频讲解:30分钟
1.1 Spring Boot概述 2
1.1.1 什么是Spring Boot 2
1.1.2 Spring与Spring Boot 2
1.1.3 Spring Boot的特点 3
1.1.4 Spring Boot开发需要哪些准备 3
1.2 JDK的下载与配置 4
1.2.1 下载JDK 4
1.2.2 配置JDK 5
1.3 Maven的下载与配置 7
1.3.1 下载Maven 7
1.3.2 修改jar包的存放位置 8
1.3.3 添加阿里云中央仓库镜像 9
1.4 开发工具的下载、安装与配置 11
1.4.1 Eclipse的下载、安装与配置 11
1.4.2 IDEA的下载、安装与配置 19
第2章 第一个Spring Boot程序 25
视频讲解:25分钟
2.1 使用Eclipse编写第一个Spring Boot程序 25
2.1.1 在Spring官网上生成初始项目文件 25
2.1.2 Eclipse导入Spring Boot项目 28
2.1.3 编写简单的跳转功能 30
2.1.4 测试工具——Postman 32
2.1.5 打包项目 34
2.2 使用Eclipse创建Spring Boot项目 37
2.2.1 安装STS插件 37
2.2.2 创建Spring Boot项目 39
2.3 使用IDEA编写第一个Spring Boot程序 42
2.3.1 添加Spring Initializr选项 42
2.3.2 使用IDEA创建Spring Boot项目 49
2.3.3 使用IDEA编写第一个Spring Boot程序 52
2.3.4 使用IDEA运行Spring Boot项目 56
第3章 Spring Boot基础 63
视频讲解:20分钟
3.1 注解 63
3.1.1 注解的概念及其应用 63
3.1.2 Spring Boot的常用注解及其标注位置 64
3.1.3 使用@SpringBootApplication标注启动类 65
3.2 Bean的注册和获取 66
3.2.1 Bean与依赖注入 66
3.2.2 注册Bean 68
3.2.3 获取Bean 72
3.3 为Spring Boot项目添加依赖 74
3.3.1 在pom.xml文件中添加依赖 74
3.3.2 如何查找依赖的版本号 77
3.4 Spring Boot的命名规范 78
3.4.1 包的命名 78
3.4.2 Java文件的命名 81
3.5 实践与练习 83
第4章 配置Spring Boot项目 84
视频讲解:20分钟
4.1 Spring Boot项目的配置文件 84
4.1.1 配置文件的格式 85
4.1.2 达成约定的配置信息 86
4.2 读取配置信息的值 87
4.2.1 使用@Value注解读取值 87
4.2.2 使用Environment环境组件读取值 88
4.2.3 使用映射类的对象读取值 90
4.3 Spring Boot支持多配置文件 94
4.3.1 加载多个配置文件 94
4.3.2 切换不同版本的配置文件 95
4.4 使用@Configuration注解声明配置类 97
4.5 实践与练习 100
第5章 处理HTTP请求 102
视频讲解:20分钟
5.1 处理HTTP请求的注解 102
5.1.1 使用@Controller声明控制器类 102
5.1.2 使用@RequestMapping映射URL地址 103
5.1.3 解析@ResponseBody的作用及其用法 112
5.1.4 新增注解——@RestController 114
5.2 重定向URL地址 115
5.2.1 使用“redirect:”前缀 115
5.2.2 使用response对象 116
5.3 解析URL地址中的参数 116
5.3.1 自动解析URL地址中的参数 116
5.3.2 使用@RequestParam标注方法参数 119
5.3.3 使用@RequestBody封装JSON数据 121
5.3.4 获取request、response和session对象的方式 122
5.4 使用RESTful风格映射动态URL地址 124
5.4.1 什么是RESTful风格 124
5.4.2 映射动态URL地址 126
5.5 实践与练习 130
第6章 过滤器、拦截器与监听器 131
视频讲解:15分钟
6.1 过滤器 131
6.1.1 通过FilterRegistrationBean类配置过滤器 132
6.1.2 通过@WebFilter注解配置过滤器 134
6.2 拦截器 136
6.2.1 拦截器概述 136
6.2.2 自定义拦截器 137
6.3 监听器 140
6.3.1 监听器概述 140
6.3.2 自定义监听器 141
6.4 实践与练习 143
第7章 Service层 145
视频讲解:18分钟
7.1 Service层与@Service注解 145
7.2 Service层的实现过程 146
7.3 同时存在多个实现类的情况 146
7.3.1 按照实现类的名称映射服务类的对象 146
7.3.2 按照@Service的value属性映射服务类的对象 149
7.4 不采用接口模式的服务类 153
7.5 @Service和@Repository的联系与区别 154
7.6 实践与练习 155
第8章 日志的操作 156
视频讲解:25分钟
8.1 Spring Boot默认的日志框架 156
8.2 打印日志 157
8.3 解读日志 159
8.4 保存日志 161
8.4.1 指定日志文件的生成位置 161
8.4.2 指定日志文件的生成名称 161
8.4.3 为日志文件添加约束 162
8.5 调整日志 163
8.5.1 设置日志级别 163
8.5.2 设置日志格式 165
8.6 logback.xml配置文件 166
8.7 实践与练习 168
第9章 JUnit单元测试 169
视频讲解:28分钟
9.1 JUnit与单元测试 169
9.2 Spring Boot中的JUnit 170
9.3 JUnit注解 171
9.3.1 核心注解 171
9.3.2 用于测前准备与测后收尾的注解 174
9.3.3 参数化测试 177
9.4 断言 181
9.4.1 Assertions类的常用方法 181
9.4.2 调用Assertions类中的方法的两种方式 182
9.4.3 Executable接口 182
9.4.4 在测试中应用断言 183
9.5 在单元测试中模拟内置对象 186
9.6 在单元测试中模拟网络请求 188
9.6.1 创建网络请求 188
9.6.2 为请求添加请求参数和数据 189
9.6.3 分析执行请求后返回的结果 189
9.7 实践与练习 191
第10章 异常处理 193
视频讲解:18分钟
10.1 拦截异常 193
10.1.1 拦截特定异常 193
10.1.2 拦截全局最底层异常 194
10.2 打印异常日志 196
10.3 缩小拦截异常的范围 198
10.3.1 拦截由某个或者多个包触发的异常 198
10.3.2 拦截由某个或者多个注解标注的类触发的异常 201
10.4 拦截自定义异常 203
10.5 设定自定义异常的错误状态 204
10.6 实践与练习 206
第2篇 进阶篇
第11章 Thymeleaf模板引擎 208
视频讲解:30分钟
11.1 Thymeleaf概述 208
11.2 添加Thymeleaf 209
11.3 使用Thymeleaf跳转至.html文件 210
11.3.1 明确.html文件的存储位置 210
11.3.2 跳转至指定的.html文件 210
11.3.3 跳转至Thymeleaf的默认页面 211
11.4 Thymeleaf的常用表达式和标签 212
11.4.1 表达式 212
11.4.2 标签 213
11.5 Thymeleaf向前端页面传值 214
11.5.1 把要传的值添加到Model对象中 214
11.5.2 在前端页面中获取Model的属性值 215
11.6 Thymeleaf的内置对象 218
11.7 Thymeleaf的条件语句 219
11.8 Thymeleaf的“循环”语句 221
11.9 Thymeleaf的~{}表达式 223
11.10 实践与练习 225
第12章 JSON解析库 227
视频讲解:15分钟
12.1 JSON简介 227
12.2 JSON解析库——Jackson 228
12.2.1 Jackson的核心API 229
12.2.2 把JavaBean转换为JSON数据 233
12.2.3 把JSON数据转换为JavaBean 237
12.2.4 Spring Boot自动把JavaBean转换成JSON数据 239
12.2.5 Jackson对JSON数据的增、删、改、查 240
12.3 JSON解析库——FastJson 243
12.3.1 添加FastJson依赖 243
12.3.2 JavaBean与JSON数据的相互转换 243
12.3.3 FastJson的@JSONField注解 245
12.3.4 FastJson对JSON数据的增、删、改、查 247
12.4 实践与练习 252
第13章 WebSocket长连接 253
视频讲解:20分钟
13.1 长连接和短连接 253
13.2 WebSocket简介 254
13.3 使用WebSocket的准备工作 254
13.4 服务端的实现 255
13.4.1 创建WebSocket端点类 255
13.4.2 Session对象 256
13.4.3 服务器端点的事件 258
13.5 客户端的实现 260
13.5.1 创建WebSocket端点类的对象 260
13.5.2 客户端端点的事件 260
13.6 两端之间事件的触发顺序 261
13.7 WebSocket综合应用 262
13.8 实践与练习 265
第14章 上传与下载 268
视频讲解:20分钟
14.1 上传文件 268
14.1.1 只上传一个文件 268
14.1.2 同时上传多个文件 270
14.2 下载文件 273
14.3 上传Excel文件中的数据 275
14.3.1 添加POI依赖 275
14.3.2 读取Excel文件中的数据(储备知识) 275
14.3.3 实例教学 277
14.4 实践与练习 281
第3篇 整合框架篇
第15章 MyBatis框架 284
视频讲解:25分钟
15.1 什么是持久层框架 284
15.2 MyBatis简介 285
15.3 在Spring Boot项目中整合MyBatis 285
15.3.1 添加MyBatis依赖 286
15.3.2 添加数据库驱动依赖 286
15.3.3 添加spring.datasource配置项 286
15.4 映射器Mapper 287
15.4.1 创建MyBatis映射器 287
15.4.2 实现数据库的基本事务 288
15.5 SQL语句构建器 293
15.5.1 SQL类 294
15.5.2 Provider系列注解 294
15.5.3 向SQL语句构建器传参 295
15.6 在SQL语句中添加占位符 297
15.7 结果映射 300
15.8 级联映射 302
15.8.1 一对一 302
15.8.2 一对多 303
15.9 实践与练习 308
第16章 Redis 309
视频讲解:20分钟
16.1 Redis简介 309
16.2 在Windows系统上搭建Redis环境 310
16.2.1 下载Redis 310
16.2.2 启动Redis 312
16.3 Redis常用命令 313
16.3.1 键值命令 313
16.3.2 哈希命令 317
16.3.3 列表命令 320
16.3.4 集合命令 323
16.4 Spring Boot访问Redis 326
16.4.1 添加依赖 326
16.4.2 配置项 326
16.4.3 使用RedisTemplate访问Redis 327
16.5 实践与练习 330
第17章 消息中间件 332
视频讲解:20分钟
17.1 消息中间件概述 332
17.1.1 两个重要的功能 332
17.1.2 两种常用的传递模式 333
17.2 ActiveMQ 334
17.2.1 搭建ActiveMQ 334
17.2.2 添加依赖和配置项 338
17.2.3 Queue点对点消息 339
17.2.4 Topic发布/订阅消息 344
17.2.5 ActiveMQ的延时队列功能 349
17.3 RabbitMQ 352
17.3.1 搭建RabbitMQ 352
17.3.2 RabbitMQ中的各类组件及其概念 359
17.3.3 添加依赖和配置项 360
17.3.4 RabbitMQ发送/接收消息 361
17.3.5 启用发送确认模式 367
17.3.6 RabbitMQ的广播功能 372
17.4 实践与练习 375
第4篇 项目篇
第18章 Spring Boot+MySQL+Vue实现图书管理系统 378
视频讲解:30分钟
18.1 需求分析 379
18.2 系统设计 379
18.2.1 系统功能结构 379
18.2.2 系统业务流程 379
18.3 数据表设计 380
18.4 系统文件夹组织结构 381
18.5 添加依赖和配置信息 381
18.5.1 在pom.xml文件中添加依赖 382
18.5.2 在application.yml文件中添加配置信息 383
18.6 工具类设计 384
18.6.1 全局异常处理类 384
18.6.2 通用返回类 384
18.7 实体类设计 386
18.8 数据持久层和服务层设计 387
18.8.1 什么是MyBatis-Plus 387
18.8.2 数据持久层设计 388
18.8.3 服务层设计 388
18.9 分页插件配置类设计 390
18.10 控制器类设计 391
18.11 启动类设计 393
18.12 项目运行 393
附录A 使用IDEA学习本书 397
A.1 使用IDEA编写无须添加依赖的Spring Boot程序 397
A.2 使用IDEA编写需要添加依赖的Spring Boot程序 400