3dwoo大學簡體電腦書店
Spring Boot趣味實戰課
( 簡體 字)
作者:劉水鏡類別:1. -> 程式設計 -> JAVA -> Spring
出版社:電子工業出版社Spring Boot趣味實戰課 3dWoo書號: 55813
詢問書籍請說出此書號!
有庫存
NT售價: 540
出版日:5/1/2022
頁數:312
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787121432163 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第 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
本書內容非常豐富,不僅涵蓋了 Spring MVC、MyBatis Plus、Spring Data JPA、Spring Security、Quartz 等主流框架,整合了 MySQL、Druid、Redis、RabbitMQ、Elasticsearch 等互聯網常用技術與中間件,還涉及單元測試、異常處理、日志、Swagger 等技術細節,以及 AOP、IOC、自動配置、數據庫事務、分布式鎖等硬核知識。本書從初始化到部署、監控,實現了軟件全生命周期一站式打包解決。本書行文風格深入淺出、通俗易懂、風趣幽默、輕松愉快。從 Hello World 聊到源碼分析,從工具使用講到內部原理,從日常生活說到設計哲學。本著“技術來源于生活,更要回歸于生活”的理念,本書通過大量生動、形象的類比將枯燥的技術描繪得“有滋有味”,讓你輕松學會這些知識。
推薦序
本書內容很全面,囊括了 Spring 生態的常用技術,如 MVC、持久化、Redis、定時任務、消息隊列、搜索引擎。本書知識講解由淺到深,循序漸進,從 Hello World講到 Spring 核心原理;技術講解深入淺出,總能以“接地氣”的例子,把抽象的技術講述得妙趣橫生,把技術學習變得像和朋友聊天一樣輕松愉快。本書的內容設計由易到難,圖文并茂,再加上豐富的實例,可以讓初級人員非常輕松地入門。同時,作者對技術獨樹一幟的理解還可以讓中、高級的技術人員受到很多啟發。所以,本書堪稱“老少皆宜,居家、旅行必備良品”。《Spring Boot 趣味實戰課》你值得擁有!
——馬士兵教育創始人 馬士兵

如今,我們處在一個快速變化的年代,軟件技術的更迭越來越快。之前,Java 工程師必須掌握的技能是 SSH 框架(Struts+Spring+Hibernate),但是很快就變成了 SSM框架(Spring MVC+Spring+MyBatis)。雖然這兩個框架只有一個字母的差別,含義卻完全不同了。接下來,又經歷了前/后端分離、微服務、云原生、大數據……作為技術開發人員,我們在這樣一個時代的生存技能就是適應變化,即逐步地學習和掌握所有技術,即使不精通某些技術也必須對它們有所了解。然而,在這長長的學習清單中,Spring Boot 無疑是具有承上啟下功能的關鍵技術。
未來的 Java 項目開發必然是基于 Spring Boot 的項目開發。無論是采用前/后端分離、SSM 框架,還是采用基于 Spring Cloud 的微服務轉型、云原生開發,我們都必須掌握 Spring Boot。也就是說,掌握 Spring Boot 已然成為所有 Java 工程師進入這個行業的必備技能,大家必須認真學習,學扎實、學牢固。因此,我為大家推薦《Spring Boot
趣味實戰課》這本書。
本書用一種更加趣味的形式,將枯燥的技術用故事的形式串聯起來,讓學習更加輕松、有趣。同時,本書更加注重實戰,將 Spring Boot 的學習落實到一個一個的工作場景中。通過對這些場景的學習,我們才能將學習真正應用到未來的工作實踐中。
然而,如何高效地學習,讓學習事半功倍,也是當今技術開發人員必備的技能。那么,如何利用本書進行高效的學習呢?我認為,應當做到以下幾個方面。
1.注重實戰學習。作者在書中講解了很多實操案例。在每一章節的學習中,我們都應當按照書中的內容來實際地搭建一個項目。不僅如此,在對書中的內容進行實操演練以后,我們甚至可以自己模擬一個項目來實戰一下。這是因為很多知識都需要在實戰中學習,而軟件開發是一個強調動手能力的技能,千萬不能光看書、不動手。
2.學會定位和解決問題。一個技術“大牛”和普通開發人員的差別在哪里呢?
不僅在于扎實的軟件技術知識,還在于出錯以后“踩坑排錯”的能力。本書的作者是一個具有豐富經驗的開發人員,在書中介紹了很多開發技巧。然而再多的開發技巧都不能把所有可能出現的問題全部覆蓋。大家在跟隨本書進行學習、實戰的過程中,肯定會遇到各種錯誤。當系統報錯時,大家不要慌張,可以仔細查看錯誤日志,先定位問題位置,再比對前后代碼,跟蹤調試各種變量,或者直接在網絡上搜索相應的錯誤日志。當你把所有 Spring Boot 開發常見的“坑”都踩過了,并且知道了解決方法,就可以更加從容地應對未來的項目開發,同時你的收獲也會更大。
3.能夠舉一反三地思考問題。不想成為技術“大牛”的開發人員不是好的開發人員!然而,成為技術“大牛”的過程要求我們在不斷學習、思考的過程中成長。我們在書中的學習都是正向的學習,作者會在書中告訴我們應當如何做。在學習完這些知識以后,我們不妨反過來思考一下,為什么要這樣做?不這樣做會怎樣呢?比如,書中說我們要逐漸將過去的 J2EE 項目轉型成 Spring Boot 項目,那么為什么要轉型,這會給我們帶來哪些好處呢?既然有這些好處,那么其他地方是否也要做出相應改變呢?實際上,我們需要反復思考與整理才能把知識學得牢固、扎實,技術“大牛”就是這樣成長起來的。
最后,我向大家強烈推薦這本書,希望它能給你帶來更多的知識與收獲。
——暢銷書《架構真意》作者 范鋼

前 言
本書結構
本書從宏觀上可以分為 3 部分。
第 1 章~第 3 章是熱身,主要包括一些必要的前置知識。
第 4 章~第 8 章是基礎實戰,包括 Spring Boot 的基本使用及其內部原理。
第 9 章~第 14 章是高級用法,主要介紹 Spring Boot 與其他各種組件的配合使用,
以完成更加復雜的功能。
本書各章節之間沒有嚴格區分先后關系,讀者可以根據自己的興趣安排閱讀順序。但如果你是初學者,推薦你從前往后閱讀。
章節介紹
第 1 章是對 Spring Boot 的宏觀介紹,主要介紹了 Spring Boot 的現狀,以及其簡單易用的特點和“約定優于配置”的設計哲學。
第 2 章是一些準備工作,介紹了 Maven、Intellij IDEA 的常用設置及使用技巧,并推薦了一些好用的插件。
第 3 章通過一個 Hello World 示例引出 Spring Boot 的工程結構,并對 Starters 和YAML 進行了詳細講解。
第 4 章主要是對 Spring MVC 的講解,不僅詳細闡述了 Spring MVC 的各種用法,還對其原理及源碼進行了分析。
第 5 章主要是對 HTTP 和 RESTful 的講解。每個程序員都應該懂一點 HTTP。另外,本章還對 Swagger 的使用進行了細致講解。
第 6 章是實戰階段的重頭戲,介紹了持久化的相關內容,如 MyBatis、Spring DataJPA、Druid、事務隔離級別及傳播特性等。
第 7 章包含 3 方面內容,即單元測試、異常處理和日志。這“三駕馬車”可以為VI Spring Boot 趣味實戰課你的系統保駕護航,快速定位問題。
第 8 章主要介紹 IOC、AOP、自動配置、啟動流程,涵蓋了 Spring Boot 的核心內容,涉及大量源碼分析。
第 9 章主要介紹 Redis 整合 Spring Boot 的各種實戰,以及如何使用 Redis 實現分布式鎖。
第 10 章主要講解 Spring Security 的整合、認證和授權,為系統安全提供保障。
第 11 章分別使用 Spring Task 和 Quartz 作為實例,講解定時任務的 3 種調度策略。
第 12 章介紹 RabbitMQ,不僅講解了 RabbitMQ 的 5 種主要工作模式,還討論了消息隊列適用的業務場景。
第 13 章講解 Elasticsearch 的核心概念及基本用法,并闡述倒排索引的原理。
第 14 章介紹 Spring Boot 的監控組件 Actuator,并演示如何與 Spring Boot Admin整合使用。
第 15 章分享作者多年來關于技術學習的一些心得。
適用人群
? 想要學習 Java Web 的在校生
? 想要轉行到 Java 的從業者
? 想要進一步提升自己的初、中級工程師
? 想要掌握 Spring Boot 核心原理的探索者
? 想要梳理 Spring Boot 知識體系以應對面試的人員
代碼獲取
本書源碼已經被上傳到 GitHub,可以通過 GitHub 域名 + /liushuijinger/springboot-book 的方式訪問,也可以關注公眾號“做個開發者”(微信號:Be-A-Developer)
并回復“源碼”獲得。
致謝
衷心感謝林瑞和編輯在本書的寫作和編輯過程中,為本書提出了很多非常好的建議。感謝本書出版過程中涉及的所有工作人員,正因為有了你們,本書才能夠順利地來到每一位讀者手中。最后,感謝每一位讀者,你們的肯定是我不斷進步的動力,你們的批評是我成長路上的階梯。
與作者交流
? 歡迎加入“開發者”技術群一起交流
? 歡迎關注作者微博:水鏡不酷
? 歡迎關注作者公眾號:做個開發者
? 歡迎通過郵件與作者交流
作 者
pagetop