Spring Boot趣味實(shí)戰(zhàn)課
定 價(jià):108 元
- 作者:劉水鏡
- 出版時(shí)間:2022/5/1
- ISBN:9787121432163
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:312
- 紙張:
- 版次:01
- 開本:16開
本書內(nèi)容非常豐富,不僅涵蓋了 Spring MVC、MyBatis Plus、Spring Data JPA、Spring Security、Quartz 等主流框架,整合了 MySQL、Druid、Redis、RabbitMQ、Elasticsearch 等互聯(lián)網(wǎng)常用技術(shù)與中間件,還涉及單元測試、異常處理、日志、Swagger 等技術(shù)細(xì)節(jié),以及 AOP、IOC、自動(dòng)配置、數(shù)據(jù)庫事務(wù)、分布式鎖等硬核知識(shí)。本書從初始化到部署、監(jiān)控,實(shí)現(xiàn)了軟件全生命周期一站式打包解決。本書行文風(fēng)格深入淺出、通俗易懂、風(fēng)趣幽默、輕松愉快。從 Hello World 聊到源碼分析,從工具使用講到內(nèi)部原理,從日常生活說到設(shè)計(jì)哲學(xué)。本著“技術(shù)來源于生活,更要回歸于生活”的理念,本書通過大量生動(dòng)、形象的類比將枯燥的技術(shù)描繪得“有滋有味”,讓你輕松學(xué)會(huì)這些知識(shí)。
CSDN 博客專家,現(xiàn)就職于國內(nèi)知名 A.I. 公司,曾任世界技能大賽(中國選拔賽)教練兼裁判。《Spring Boot 趣味私房課》專欄作者,講課通俗易懂,語言風(fēng)趣幽默,其獨(dú)特的風(fēng)格受到學(xué)生們的廣泛歡迎。
目錄
第 1 章 Spring Boot 憑什么成為 JVM圈的框架“一哥” 1
1.1 用數(shù)據(jù)說話 1
1.1.1 市場份額 1
1.1.2 關(guān)注度 2
1.2 多方支持 3
1.2.1 官方力推 3
1.2.2 “大廠”背書 4
1.3 打鐵還需自身硬 5
1.3.1 高顏值 5
1.3.2 有內(nèi)涵 6
1.4 要點(diǎn)回顧 7
第 2 章 兵馬未動(dòng),糧草先行——碼前準(zhǔn)備 8
2.1 軟件環(huán)境 8
2.2 大管家 Maven 9
2.2.1 pom 文件 9
2.2.2 常用概念 11
2.3 打造一件趁手的兵器 13
2.3.1 設(shè)置 13
2.3.2 技巧 19
2.3.3 插件 25
2.4 要點(diǎn)回顧 26
第 3 章 牛刀小試——五分鐘入門 Spring Boot 27
3.1 萬物皆可 Hello World 27
3.1.1 創(chuàng)建一個(gè) Web 工程 27
3.1.2 完成核心代碼 30
3.1.3 運(yùn)行并查看效果 32
3.2 Spring Boot 的工程結(jié)構(gòu) 33
3.2.1 結(jié)構(gòu)詳解 34
3.2.2 結(jié)構(gòu)分類 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 要點(diǎn)回顧 41
第 4 章 斗轉(zhuǎn)星移,無人能及——Spring MVC 42
4.1 Spring MVC 簡介 42
4.2 接收參數(shù)的各種方式 43
4.2.1 常用注解 44
4.2.2 準(zhǔn)備工作 45
4.2.3 無注解方式 46
4.2.4 @RequestParam 方式 46
4.2.5 @PathVariable 方式 47
4.2.6 @RequestBody 方式 47
4.3 參數(shù)校驗(yàn) 49
4.3.1 開啟參數(shù)校驗(yàn) 49
4.3.2 查看校驗(yàn)效果 50
4.3.3 常用的參數(shù)校驗(yàn)注解 51
4.4 原理分析 52
4.4.1 流程分析 52
4.4.2 深入核心 53
4.5 攔截器 54
4.5.1 自定義攔截器 55
4.5.2 攔截器的執(zhí)行流程 57
4.5.3 多個(gè)攔截器的執(zhí)行順序 59
4.6 要點(diǎn)回顧 62
第 5 章 你有 REST Style 嗎 63
5.1 你應(yīng)該懂一點(diǎn) HTTP 63
5.1.1 報(bào)文 63
5.1.2 狀態(tài)碼 65
5.1.3 安全性與冪等性 65
5.1.4 協(xié)議版本 66
5.2 接口代言人 Swagger 67
5.2.1 整合 67
5.2.2 效果 69
5.2.3 常用注解 69
5.2.4 增強(qiáng)版 70
5.3 解密 REST 71
5.3.1 REST 定義 71
5.3.2 RESTful 73
5.3.3 RESTful 實(shí)踐 73
5.4 URL 與 URI 76
5.4.1 關(guān)系 76
5.4.2 區(qū)別 77
5.5 要點(diǎn)回顧 77
第 6 章 與持久化有關(guān)的那些事兒 78
6.1 發(fā)展 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 審計(jì) 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 條件構(gòu)造器 108
6.4.6 自動(dòng)填充 112
6.5 強(qiáng)大的 Druid 114
6.5.1 基本原理 114
6.5.2 如何選擇連接池 115
6.5.3 配置 115
6.5.4 監(jiān)控 117
6.6 事務(wù) 120
6.6.1 事務(wù)的特性 120
6.6.2 臟讀、不可重復(fù)讀、幻讀 121
6.6.3 在 Spring 中使用事務(wù) 124
6.6.4 Spring 中的事務(wù)傳播行為 125
6.6.5 拓展 135
6.7 要點(diǎn)回顧 135
第 7 章 出征前送你 3 個(gè)錦囊 136
7.1 代碼的護(hù)身符——單元測試 136
7.1.1 一個(gè)單元測試的自我修養(yǎng) 136
7.1.2 為什么要寫單元測試 137
7.1.3 Junit 138
7.1.4 實(shí)戰(zhàn) 140
7.2 天有不測風(fēng)云——異常處理 143
7.2.1 異常體系 143
7.2.2 全局異常處理 145
7.2.3 異常與意外 149
7.3 軟件系統(tǒng)的黑匣子——日志 149
7.3.1 日志的作用 149
7.3.2 日志級(jí)別 150
7.3.3 常見日志框架 151
7.3.4 配置 153
7.3.5 規(guī)范 156
7.3.6 得日志者得天下 157
7.4 要點(diǎn)回顧 157
第 8 章 Spring Boot 的核心原理 158
8.1 你真的懂 IOC 嗎 158
8.1.1 實(shí)現(xiàn)方式 158
8.1.2 傳統(tǒng)方式 vs 控制翻轉(zhuǎn) 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 執(zhí)行順序 171
8.2.6 原理簡析 174
8.3 為什么一個(gè) main 方法就能啟動(dòng)項(xiàng)目 175
8.3.1 概覽 175
8.3.2 應(yīng)用啟動(dòng)計(jì)時(shí) 177
8.3.3 打印 Banner 178
8.3.4 創(chuàng)建上下文實(shí)例 179
8.3.5 構(gòu)建容器上下文 180
8.3.6 刷新上下文 181
8.4 比你更懂你的自動(dòng)配置 184
8.4.1 自動(dòng)配置原理 184
8.4.2 按需配置 191
8.5 要點(diǎn)回顧 192
第 9 章 互聯(lián)網(wǎng)應(yīng)用性能瓶頸的“萬金油”——Redis 193
9.1 初識(shí) Redis 193
9.1.1 Redis 特性 193
9.1.2 Redis 的“看家
本領(lǐng)”——快 195
9.2 Redis 可以做什么 197
9.3 使用 Redis 198
9.3.1 安裝 Redis 198
9.3.2 默認(rèn)端口來歷 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 實(shí)現(xiàn)分布式鎖 205
9.5.1 鎖的自我修養(yǎng) 206
9.5.2 實(shí)現(xiàn)分布式鎖的方式 206
9.5.3 實(shí)現(xiàn)分布式鎖 207
9.5.4 其他實(shí)現(xiàn)方案 209
9.6 要點(diǎn)回顧 210
第 10 章 安全領(lǐng)域的“扛把子”——Spring Security 211
10.1 認(rèn)證和授權(quán) 211
10.1.1 認(rèn)證 211
10.1.2 授權(quán) 212
10.2 Spring Security 簡介 212
10.3 功能一覽 212
10.3.1 多種認(rèn)證方式 212
10.3.2 多種加密方式 213
10.3.3 多種授權(quán)方式 214
10.4 動(dòng)手實(shí)踐 215
10.4.1 集成 215
10.4.2 自定義用戶 215
10.4.3 從數(shù)據(jù)庫中獲取用戶信息 216
10.4.4 登錄成功與失敗處理 218
10.4.5 權(quán)限控制 220
10.4.6 異常處理 222
10.4.7 記住我 224
10.4.8 常用的安全配置 226
10.4.9 獲取當(dāng)前用戶 228
10.5 前景 229
10.6 要點(diǎn)回顧 230
第 11 章 自律到“令人發(fā)指”的定時(shí)任務(wù) 231
11.1 什么時(shí)候需要定時(shí)任務(wù) 231
11.2 Java 中的定時(shí)任務(wù) 232
11.2.1 單機(jī) 232
11.2.2 分布式 232
11.3 Spring Task 實(shí)戰(zhàn) 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 代碼實(shí)戰(zhàn) 237
11.4.3 Quartz 表說明 238
11.5 cron 表達(dá)式 239
11.6 要點(diǎn)回顧 240
第 12 章 RabbitMQ 從哪里來、是什么、能干什么、怎么干 241
12.1 消息隊(duì)列的由來 241
12.2 核心概念 241
12.2.1 客戶端 242
12.2.2 服務(wù)端 242
12.2.3 連接和信道 243
12.3 業(yè)務(wù)場景 244
12.4 工作模式 244
12.4.1 無交換器參與 245
12.4.2 有交換器參與 246
12.5 動(dòng)手實(shí)踐 247
12.5.1 Web 管理端 247
12.5.2 代碼實(shí)戰(zhàn) 249
12.6 要點(diǎn)回顧 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 動(dòng)手實(shí)踐 262
13.3.1 版本匹配 262
13.3.2 準(zhǔn)備工作 262
13.3.3 Elasticsearch 的 CRUD 264
13.3.4 ElasticsearchRestTemplate 265
13.4 數(shù)據(jù)同步 267
13.4.1 定時(shí)同步 268
13.4.2 實(shí)時(shí)同步 268
13.5 要點(diǎn)回顧 268
第 14 章 項(xiàng)目上線的“最后一公里”——部署與監(jiān)控 269
14.1 部署 269
14.1.1 Jar 269
14.1.2 War 270
14.1.3 DevTools 272
14.2 監(jiān)控 275
14.2.1 Actuator 275
14.2.2 自定義 282
14.2.3 Spring Boot Admin 285
14.3 要點(diǎn)回顧 291
第 15 章 你學(xué)習(xí)技術(shù)的“姿勢”對嗎 292
15.1 技術(shù)應(yīng)該怎么學(xué) 292
15.2 不怕麻煩 293
15.3 遇到問題怎么辦 294
15.3.1 IDE 會(huì)幫助你解決問題 294
15.3.2 錯(cuò)誤信息會(huì)告訴你怎么解決問題 294
15.3.3 借助互聯(lián)網(wǎng) 295
15.3.4 提問的正確“姿勢” 296
15.4 要點(diǎn)回顧 296
附錄 A 使用 Docker 配置開發(fā)環(huán)境 297
Docker 常用命令 297
安裝環(huán)境 299