Spring Boot 趣味實戰課

劉水鏡

  • 出版商: 電子工業
  • 出版日期: 2022-05-01
  • 定價: $648
  • 售價: 8.5$551
  • 語言: 簡體中文
  • 頁數: 312
  • ISBN: 7121432161
  • ISBN-13: 9787121432163
  • 相關分類: Java 相關技術
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

本書內容非常豐富,不僅涵蓋了 Spring MVC、MyBatis Plus、Spring Data JPA、Spring Security、Quartz 等主流框架,整合了 MySQL、Druid、Redis、RabbitMQ、Elasticsearch 等互聯網常用技術與中間件,還涉及單元測試、異常處理、日誌、Swagger 等技術細節,以及 AOP、IOC、自動配置、數據庫事務、分佈式鎖等硬核知識。本書從初始化到部署、監控,實現了軟件全生命周期一站式打包解決。本書行文風格深入淺出、通俗易懂、風趣幽默、輕松愉快。從 Hello World 聊到源碼分析,從工具使用講到內部原理,從日常生活說到設計哲學。本著“技術來源於生活,更要回歸於生活”的理念,本書通過大量生動、形象的類比將枯燥的技術描繪得“有滋有味”,讓你輕松學會這些知識。

目錄大綱

第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