书籍详情
Spring Boot趣味实战课
作者:刘水镜
出版社:电子工业出版社
出版时间:2022-05-01
ISBN:9787121432163
定价:¥108.00
购买这本书可以去
内容简介
本书内容非常丰富,不仅涵盖了 Spring MVC、MyBatis Plus、Spring Data JPA、Spring Security、Quartz 等主流框架,整合了 MySQL、Druid、Redis、RabbitMQ、Elasticsearch 等互联网常用技术与中间件,还涉及单元测试、异常处理、日志、Swagger 等技术细节,以及 AOP、IOC、自动配置、数据库事务、分布式锁等硬核知识。本书从初始化到部署、监控,实现了软件全生命周期一站式打包解决。本书行文风格深入浅出、通俗易懂、风趣幽默、轻松愉快。从 Hello World 聊到源码分析,从工具使用讲到内部原理,从日常生活说到设计哲学。本着“技术来源于生活,更要回归于生活”的理念,本书通过大量生动、形象的类比将枯燥的技术描绘得“有滋有味”,让你轻松学会这些知识。
作者简介
CSDN 博客专家,现就职于国内知名 A.I. 公司,曾任世界技能大赛(中国选拔赛)教练兼裁判。《Spring Boot 趣味私房课》专栏作者,讲课通俗易懂,语言风趣幽默,其独特的风格受到学生们的广泛欢迎。
目录
目录
第 1 章 Spring Boot 凭什么成为 JVM圈的框架“一哥” 1
1.1 用数据说话 1
1.1.1 市场份额 1
1.1.2 关注度 2
1.2 多方支持 3
1.2.1 官方力推 3
1.2.2 “大厂”背书 4
1.3 打铁还需自身硬 5
1.3.1 高颜值 5
1.3.2 有内涵 6
1.4 要点回顾 7
第 2 章 兵马未动,粮草先行——码前准备 8
2.1 软件环境 8
2.2 大管家 Maven 9
2.2.1 pom 文件 9
2.2.2 常用概念 11
2.3 打造一件趁手的兵器 13
2.3.1 设置 13
2.3.2 技巧 19
2.3.3 插件 25
2.4 要点回顾 26
第 3 章 牛刀小试——五分钟入门 Spring Boot 27
3.1 万物皆可 Hello World 27
3.1.1 创建一个 Web 工程 27
3.1.2 完成核心代码 30
3.1.3 运行并查看效果 32
3.2 Spring Boot 的工程结构 33
3.2.1 结构详解 34
3.2.2 结构分类 35
3.3 珍爱生命,我用 Starters 35
3.3.1 没有 Starters 的日子 36
3.3.2 有了 Starters 以后 37
3.3.3 什么是 Starters 37
3.4 值得拥有的 YAML 39
3.4.1 Properties 与 YAML 39
3.4.2 YAML 语法 40
3.5 要点回顾 41
第 4 章 斗转星移,无人能及——Spring MVC 42
4.1 Spring MVC 简介 42
4.2 接收参数的各种方式 43
4.2.1 常用注解 44
4.2.2 准备工作 45
4.2.3 无注解方式 46
4.2.4 @RequestParam 方式 46
4.2.5 @PathVariable 方式 47
4.2.6 @RequestBody 方式 47
4.3 参数校验 49
4.3.1 开启参数校验 49
4.3.2 查看校验效果 50
4.3.3 常用的参数校验注解 51
4.4 原理分析 52
4.4.1 流程分析 52
4.4.2 深入核心 53
4.5 拦截器 54
4.5.1 自定义拦截器 55
4.5.2 拦截器的执行流程 57
4.5.3 多个拦截器的执行顺序 59
4.6 要点回顾 62
第 5 章 你有 REST Style 吗 63
5.1 你应该懂一点 HTTP 63
5.1.1 报文 63
5.1.2 状态码 65
5.1.3 安全性与幂等性 65
5.1.4 协议版本 66
5.2 接口代言人 Swagger 67
5.2.1 整合 67
5.2.2 效果 69
5.2.3 常用注解 69
5.2.4 增强版 70
5.3 解密 REST 71
5.3.1 REST 定义 71
5.3.2 RESTful 73
5.3.3 RESTful 实践 73
5.4 URL 与 URI 76
5.4.1 关系 76
5.4.2 区别 77
5.5 要点回顾 77
第 6 章 与持久化有关的那些事儿 78
6.1 发展 78
6.2 派系之争 79
6.3 Spring Data JPA 81
6.3.1 简介 81
6.3.2 集成 83
6.3.3 极简的 CRUD 86
6.3.4 分页、排序 88
6.3.5 揭秘 JPA 88
6.3.6 约定方法 91
6.3.7 自定义 93
6.3.8 审计 94
6.4 MyBatis Plus 97
6.4.1 集成 97
6.4.2 代码生成 98
6.4.3 自定义模板 104
6.4.4 分页 107
6.4.5 条件构造器 108
6.4.6 自动填充 112
6.5 强大的 Druid 114
6.5.1 基本原理 114
6.5.2 如何选择连接池 115
6.5.3 配置 115
6.5.4 监控 117
6.6 事务 120
6.6.1 事务的特性 120
6.6.2 脏读、不可重复读、幻读 121
6.6.3 在 Spring 中使用事务 124
6.6.4 Spring 中的事务传播行为 125
6.6.5 拓展 135
6.7 要点回顾 135
第 7 章 出征前送你 3 个锦囊 136
7.1 代码的护身符——单元测试 136
7.1.1 一个单元测试的自我修养 136
7.1.2 为什么要写单元测试 137
7.1.3 Junit 138
7.1.4 实战 140
7.2 天有不测风云——异常处理 143
7.2.1 异常体系 143
7.2.2 全局异常处理 145
7.2.3 异常与意外 149
7.3 软件系统的黑匣子——日志 149
7.3.1 日志的作用 149
7.3.2 日志级别 150
7.3.3 常见日志框架 151
7.3.4 配置 153
7.3.5 规范 156
7.3.6 得日志者得天下 157
7.4 要点回顾 157
第 8 章 Spring Boot 的核心原理 158
8.1 你真的懂 IOC 吗 158
8.1.1 实现方式 158
8.1.2 传统方式 vs 控制翻转 159
8.1.3 IOC 的意义 163
8.2 什么是 AOP 164
8.2.1 AOP 与 OOP 164
8.2.2 为什么用 AOP 165
8.2.3 用在什么地方 166
8.2.4 怎么用 167
8.2.5 执行顺序 171
8.2.6 原理简析 174
8.3 为什么一个 main 方法就能启动项目 175
8.3.1 概览 175
8.3.2 应用启动计时 177
8.3.3 打印 Banner 178
8.3.4 创建上下文实例 179
8.3.5 构建容器上下文 180
8.3.6 刷新上下文 181
8.4 比你更懂你的自动配置 184
8.4.1 自动配置原理 184
8.4.2 按需配置 191
8.5 要点回顾 192
第 9 章 互联网应用性能瓶颈的“万金油”——Redis 193
9.1 初识 Redis 193
9.1.1 Redis 特性 193
9.1.2 Redis 的“看家
本领”——快 195
9.2 Redis 可以做什么 197
9.3 使用 Redis 198
9.3.1 安装 Redis 198
9.3.2 默认端口来历 199
9.3.3 集成 200
9.3.4 Hello Redis 201
9.4 更多用法 201
9.4.1 Template 201
9.4.2 opsFor 202
9.4.3 绑定 key 操作 203
9.4.4 序列化策略 203
9.5 Redis 实现分布式锁 205
9.5.1 锁的自我修养 206
9.5.2 实现分布式锁的方式 206
9.5.3 实现分布式锁 207
9.5.4 其他实现方案 209
9.6 要点回顾 210
第 10 章 安全领域的“扛把子”——Spring Security 211
10.1 认证和授权 211
10.1.1 认证 211
10.1.2 授权 212
10.2 Spring Security 简介 212
10.3 功能一览 212
10.3.1 多种认证方式 212
10.3.2 多种加密方式 213
10.3.3 多种授权方式 214
10.4 动手实践 215
10.4.1 集成 215
10.4.2 自定义用户 215
10.4.3 从数据库中获取用户信息 216
10.4.4 登录成功与失败处理 218
10.4.5 权限控制 220
10.4.6 异常处理 222
10.4.7 记住我 224
10.4.8 常用的安全配置 226
10.4.9 获取当前用户 228
10.5 前景 229
10.6 要点回顾 230
第 11 章 自律到“令人发指”的定时任务 231
11.1 什么时候需要定时任务 231
11.2 Java 中的定时任务 232
11.2.1 单机 232
11.2.2 分布式 232
11.3 Spring Task 实战 232
11.3.1 故事背景 234
11.3.2 fixedDelay 模式 234
11.3.3 cron 模式 235
11.3.4 fixedRate 模式 236
11.4 整合 Quartz 237
11.4.1 核心概念 237
11.4.2 代码实战 237
11.4.3 Quartz 表说明 238
11.5 cron 表达式 239
11.6 要点回顾 240
第 12 章 RabbitMQ 从哪里来、是什么、能干什么、怎么干 241
12.1 消息队列的由来 241
12.2 核心概念 241
12.2.1 客户端 242
12.2.2 服务端 242
12.2.3 连接和信道 243
12.3 业务场景 244
12.4 工作模式 244
12.4.1 无交换器参与 245
12.4.2 有交换器参与 246
12.5 动手实践 247
12.5.1 Web 管理端 247
12.5.2 代码实战 249
12.6 要点回顾 257
第 13 章 反其道行之的Elasticsearch 258
13.1 Elasticsearch 简介 258
13.1.1 什么是搜索引擎 258
13.1.2 在搜索界的地位 259
13.1.3 为什么是 Elasticsearch 259
13.2 核心概念 260
13.2.1 核心对象 260
13.2.2 倒排索引 261
13.3 动手实践 262
13.3.1 版本匹配 262
13.3.2 准备工作 262
13.3.3 Elasticsearch 的 CRUD 264
13.3.4 ElasticsearchRestTemplate 265
13.4 数据同步 267
13.4.1 定时同步 268
13.4.2 实时同步 268
13.5 要点回顾 268
第 14 章 项目上线的“后一公里”——部署与监控 269
14.1 部署 269
14.1.1 Jar 269
14.1.2 War 270
14.1.3 DevTools 272
14.2 监控 275
14.2.1 Actuator 275
14.2.2 自定义 282
14.2.3 Spring Boot Admin 285
14.3 要点回顾 291
第 15 章 你学习技术的“姿势”对吗 292
15.1 技术应该怎么学 292
15.2 不怕麻烦 293
15.3 遇到问题怎么办 294
15.3.1 IDE 会帮助你解决问题 294
15.3.2 错误信息会告诉你怎么解决问题 294
15.3.3 借助互联网 295
15.3.4 提问的正确“姿势” 296
15.4 要点回顾 296
附录 A 使用 Docker 配置开发环境 297
Docker 常用命令 297
安装环境 299
第 1 章 Spring Boot 凭什么成为 JVM圈的框架“一哥” 1
1.1 用数据说话 1
1.1.1 市场份额 1
1.1.2 关注度 2
1.2 多方支持 3
1.2.1 官方力推 3
1.2.2 “大厂”背书 4
1.3 打铁还需自身硬 5
1.3.1 高颜值 5
1.3.2 有内涵 6
1.4 要点回顾 7
第 2 章 兵马未动,粮草先行——码前准备 8
2.1 软件环境 8
2.2 大管家 Maven 9
2.2.1 pom 文件 9
2.2.2 常用概念 11
2.3 打造一件趁手的兵器 13
2.3.1 设置 13
2.3.2 技巧 19
2.3.3 插件 25
2.4 要点回顾 26
第 3 章 牛刀小试——五分钟入门 Spring Boot 27
3.1 万物皆可 Hello World 27
3.1.1 创建一个 Web 工程 27
3.1.2 完成核心代码 30
3.1.3 运行并查看效果 32
3.2 Spring Boot 的工程结构 33
3.2.1 结构详解 34
3.2.2 结构分类 35
3.3 珍爱生命,我用 Starters 35
3.3.1 没有 Starters 的日子 36
3.3.2 有了 Starters 以后 37
3.3.3 什么是 Starters 37
3.4 值得拥有的 YAML 39
3.4.1 Properties 与 YAML 39
3.4.2 YAML 语法 40
3.5 要点回顾 41
第 4 章 斗转星移,无人能及——Spring MVC 42
4.1 Spring MVC 简介 42
4.2 接收参数的各种方式 43
4.2.1 常用注解 44
4.2.2 准备工作 45
4.2.3 无注解方式 46
4.2.4 @RequestParam 方式 46
4.2.5 @PathVariable 方式 47
4.2.6 @RequestBody 方式 47
4.3 参数校验 49
4.3.1 开启参数校验 49
4.3.2 查看校验效果 50
4.3.3 常用的参数校验注解 51
4.4 原理分析 52
4.4.1 流程分析 52
4.4.2 深入核心 53
4.5 拦截器 54
4.5.1 自定义拦截器 55
4.5.2 拦截器的执行流程 57
4.5.3 多个拦截器的执行顺序 59
4.6 要点回顾 62
第 5 章 你有 REST Style 吗 63
5.1 你应该懂一点 HTTP 63
5.1.1 报文 63
5.1.2 状态码 65
5.1.3 安全性与幂等性 65
5.1.4 协议版本 66
5.2 接口代言人 Swagger 67
5.2.1 整合 67
5.2.2 效果 69
5.2.3 常用注解 69
5.2.4 增强版 70
5.3 解密 REST 71
5.3.1 REST 定义 71
5.3.2 RESTful 73
5.3.3 RESTful 实践 73
5.4 URL 与 URI 76
5.4.1 关系 76
5.4.2 区别 77
5.5 要点回顾 77
第 6 章 与持久化有关的那些事儿 78
6.1 发展 78
6.2 派系之争 79
6.3 Spring Data JPA 81
6.3.1 简介 81
6.3.2 集成 83
6.3.3 极简的 CRUD 86
6.3.4 分页、排序 88
6.3.5 揭秘 JPA 88
6.3.6 约定方法 91
6.3.7 自定义 93
6.3.8 审计 94
6.4 MyBatis Plus 97
6.4.1 集成 97
6.4.2 代码生成 98
6.4.3 自定义模板 104
6.4.4 分页 107
6.4.5 条件构造器 108
6.4.6 自动填充 112
6.5 强大的 Druid 114
6.5.1 基本原理 114
6.5.2 如何选择连接池 115
6.5.3 配置 115
6.5.4 监控 117
6.6 事务 120
6.6.1 事务的特性 120
6.6.2 脏读、不可重复读、幻读 121
6.6.3 在 Spring 中使用事务 124
6.6.4 Spring 中的事务传播行为 125
6.6.5 拓展 135
6.7 要点回顾 135
第 7 章 出征前送你 3 个锦囊 136
7.1 代码的护身符——单元测试 136
7.1.1 一个单元测试的自我修养 136
7.1.2 为什么要写单元测试 137
7.1.3 Junit 138
7.1.4 实战 140
7.2 天有不测风云——异常处理 143
7.2.1 异常体系 143
7.2.2 全局异常处理 145
7.2.3 异常与意外 149
7.3 软件系统的黑匣子——日志 149
7.3.1 日志的作用 149
7.3.2 日志级别 150
7.3.3 常见日志框架 151
7.3.4 配置 153
7.3.5 规范 156
7.3.6 得日志者得天下 157
7.4 要点回顾 157
第 8 章 Spring Boot 的核心原理 158
8.1 你真的懂 IOC 吗 158
8.1.1 实现方式 158
8.1.2 传统方式 vs 控制翻转 159
8.1.3 IOC 的意义 163
8.2 什么是 AOP 164
8.2.1 AOP 与 OOP 164
8.2.2 为什么用 AOP 165
8.2.3 用在什么地方 166
8.2.4 怎么用 167
8.2.5 执行顺序 171
8.2.6 原理简析 174
8.3 为什么一个 main 方法就能启动项目 175
8.3.1 概览 175
8.3.2 应用启动计时 177
8.3.3 打印 Banner 178
8.3.4 创建上下文实例 179
8.3.5 构建容器上下文 180
8.3.6 刷新上下文 181
8.4 比你更懂你的自动配置 184
8.4.1 自动配置原理 184
8.4.2 按需配置 191
8.5 要点回顾 192
第 9 章 互联网应用性能瓶颈的“万金油”——Redis 193
9.1 初识 Redis 193
9.1.1 Redis 特性 193
9.1.2 Redis 的“看家
本领”——快 195
9.2 Redis 可以做什么 197
9.3 使用 Redis 198
9.3.1 安装 Redis 198
9.3.2 默认端口来历 199
9.3.3 集成 200
9.3.4 Hello Redis 201
9.4 更多用法 201
9.4.1 Template 201
9.4.2 opsFor 202
9.4.3 绑定 key 操作 203
9.4.4 序列化策略 203
9.5 Redis 实现分布式锁 205
9.5.1 锁的自我修养 206
9.5.2 实现分布式锁的方式 206
9.5.3 实现分布式锁 207
9.5.4 其他实现方案 209
9.6 要点回顾 210
第 10 章 安全领域的“扛把子”——Spring Security 211
10.1 认证和授权 211
10.1.1 认证 211
10.1.2 授权 212
10.2 Spring Security 简介 212
10.3 功能一览 212
10.3.1 多种认证方式 212
10.3.2 多种加密方式 213
10.3.3 多种授权方式 214
10.4 动手实践 215
10.4.1 集成 215
10.4.2 自定义用户 215
10.4.3 从数据库中获取用户信息 216
10.4.4 登录成功与失败处理 218
10.4.5 权限控制 220
10.4.6 异常处理 222
10.4.7 记住我 224
10.4.8 常用的安全配置 226
10.4.9 获取当前用户 228
10.5 前景 229
10.6 要点回顾 230
第 11 章 自律到“令人发指”的定时任务 231
11.1 什么时候需要定时任务 231
11.2 Java 中的定时任务 232
11.2.1 单机 232
11.2.2 分布式 232
11.3 Spring Task 实战 232
11.3.1 故事背景 234
11.3.2 fixedDelay 模式 234
11.3.3 cron 模式 235
11.3.4 fixedRate 模式 236
11.4 整合 Quartz 237
11.4.1 核心概念 237
11.4.2 代码实战 237
11.4.3 Quartz 表说明 238
11.5 cron 表达式 239
11.6 要点回顾 240
第 12 章 RabbitMQ 从哪里来、是什么、能干什么、怎么干 241
12.1 消息队列的由来 241
12.2 核心概念 241
12.2.1 客户端 242
12.2.2 服务端 242
12.2.3 连接和信道 243
12.3 业务场景 244
12.4 工作模式 244
12.4.1 无交换器参与 245
12.4.2 有交换器参与 246
12.5 动手实践 247
12.5.1 Web 管理端 247
12.5.2 代码实战 249
12.6 要点回顾 257
第 13 章 反其道行之的Elasticsearch 258
13.1 Elasticsearch 简介 258
13.1.1 什么是搜索引擎 258
13.1.2 在搜索界的地位 259
13.1.3 为什么是 Elasticsearch 259
13.2 核心概念 260
13.2.1 核心对象 260
13.2.2 倒排索引 261
13.3 动手实践 262
13.3.1 版本匹配 262
13.3.2 准备工作 262
13.3.3 Elasticsearch 的 CRUD 264
13.3.4 ElasticsearchRestTemplate 265
13.4 数据同步 267
13.4.1 定时同步 268
13.4.2 实时同步 268
13.5 要点回顾 268
第 14 章 项目上线的“后一公里”——部署与监控 269
14.1 部署 269
14.1.1 Jar 269
14.1.2 War 270
14.1.3 DevTools 272
14.2 监控 275
14.2.1 Actuator 275
14.2.2 自定义 282
14.2.3 Spring Boot Admin 285
14.3 要点回顾 291
第 15 章 你学习技术的“姿势”对吗 292
15.1 技术应该怎么学 292
15.2 不怕麻烦 293
15.3 遇到问题怎么办 294
15.3.1 IDE 会帮助你解决问题 294
15.3.2 错误信息会告诉你怎么解决问题 294
15.3.3 借助互联网 295
15.3.4 提问的正确“姿势” 296
15.4 要点回顾 296
附录 A 使用 Docker 配置开发环境 297
Docker 常用命令 297
安装环境 299
猜您喜欢