Spring Boot 3:入門與應用實戰(簽名版)

LinkedBear

  • 出版商: 人民郵電
  • 出版日期: 2025-05-01
  • 售價: $779
  • 語言: 簡體中文
  • 頁數: 440
  • ISBN: 7115667470
  • ISBN-13: 9787115667472
  • 相關分類: Java 相關技術
  • 下單後立即進貨 (約4週~6週)

  • Spring Boot 3:入門與應用實戰(簽名版)-preview-1
  • Spring Boot 3:入門與應用實戰(簽名版)-preview-2
Spring Boot 3:入門與應用實戰(簽名版)-preview-1

相關主題

商品描述

隨著JDK的升級與叠代,Spring Framework與Spring Boot也分別升級到了全新的6.0與3.0版本,全新的版本帶來了更加強大的功能和特性。本書側重於核心功能和特性的講解,重點講解Spring Framework與Spring Boot在應用開發中的核心與應用,通過多個方面介紹應用開發中涉及的場景。

本書分為六個部分,共15章。第一部分~第三部分介紹Spring Framework與Spring Boot的基礎與核心機制,包括IOC、AOP、Spring Boot應用特性;第四部分講解基於Spring Boot的WebMvc應用開發;第五部分對Dao層整合開發進行講解;第六部分則是Spring Boot的應用打包和生產級特性。

閱讀本書之前,建議讀者至少對Java Web有一定的瞭解。本書適合想要迅速上手Spring Framework和Spring Boot的入門級開發者,也適合想要深入提升Java開發能力的初級或中級開發者。

作者簡介

LinkedBear,資深Java工程師,Spring技術佈道師。長期專註於Spring框架體系的理論研究與實踐創新,對Spring、Spring Boot等框架有著獨到的見解,擁有豐富的框架體系實踐經驗和封裝架構經驗。

他撰寫的技術圖書,不僅深入剖析Spring框架體系的核心原理,更以“源碼級解析+場景化實戰”的講解模式,幫助開發者快速構建從原理認知到工程落地的完整知識體系,實現從理論到實戰的能力躍遷。

目錄大綱

第 1 章 Spring Framework 入門 3

1.1 Spring Framework 概述 3

1.2 Spring Framework 的發展歷史 5

1.3 Spring Framework 的組成結構 6

1.4 Spring 生態核心成員 7

1.5 開發環境準備 7

1.5.1 安裝JDK 8

1.5.2 安裝Maven 8

1.5.3 安裝IDEA 9

1.6 小結 9

第 2 章 IOC 思想與實現 10

2.1 IOC 是怎麼來的 10

2.1.1 原生Servlet 時代的三層架構 10

2.1.2 需求變更 16

2.1.3 源碼丟失 17

2.1.4 硬編碼問題 18

2.1.5 多次實例化 20

2.1.6 IOC 思想的引入 21

2.2 IOC 的兩種實現方式 22

2.2.1 依賴查找 22

2.2.2 依賴註入 25

2.2.3 依賴查找與依賴註入的對比 27

2.3 BeanFactory 與

ApplicationContext 28

2.3.1 理解IOC 容器 28

2.3.2 對比BeanFactory 與

ApplicationContext 28

2.3.3 理解Context 與

ApplicationContext 29

2.4 註解驅動的 IOC 30

2.4.1 註解驅動IOC 的依賴查找 30

2.4.2 註解驅動IOC 的依賴註入 31

2.4.3 組件註冊與掃描機制 31

2.4.4 註解驅動與XML 驅動互通 34

2.5 依賴查找進階與高級 34

2.5.1 ofType 34

2.5.2 withAnnotation 35

2.5.3 獲取所有Bean 36

2.5.4 延遲查找 37

2.6 依賴註入的 6 種方式 39

2.6.1 setter 方法與構造器註入 39

2.6.2 註解屬性註入 40

2.6.3 組件自動註入 43

2.6.4 復雜類型註入 49

2.6.5 回調註入 51

2.6.6 延遲註入 53

2.7 小結 54

第 3 章 IOC 容器中的 Bean 55

3.1 Bean 的類型 55

3.1.1 普通Bean 55

3.1.2 FactoryBean 56

3.2 Bean 的作用域 60

3.2.1 理解作用域 61

3.2.2 內置的作用域 61

3.2.3 單實例(singleton) 62

3.2.4 原型(prototype) 63

3.2.5 Web 中的擴展作用域 65

3.3 Bean 的實例化方式 66

3.3.1 普通Bean 實例化 66

3.3.2 借助FactoryBean 創建Bean 66

3.3.3 借助靜態工廠創建Bean 66

3.3.4 借助實例工廠創建Bean 68

3.4 Bean 的基本生命周期 68

3.4.1 生命周期的階段 69

3.4.2 init-method 和destroy-method 70

3.4.3 JSR-250 規範註解 72

3.4.4 InitializingBean 和

DisposableBean 74

3.4.5 原型Bean 的生命周期 76

3.4.6 生命周期擴展點對比 78

3.4.7 補充:Lifecycle 接口 78

目錄

3.5 小結 80

第 4 章 IOC 容器的設計與機制 81

4.1 BeanFactory 81

4.1.1 BeanFactory 接口系列 82

4.1.2 BeanFactory 的實現類 83

4.2 ApplicationContext 83

4.2.1 ApplicationContext 接口系列 83

4.2.2 ApplicationContext 的實現類 84

4.3 事件驅動與監聽器 85

4.3.1 觀察者模式 85

4.3.2 Spring 中的觀察者模式 85

4.3.3 事件與監聽器實踐 86

4.3.4 Spring 的內置事件 88

4.3.5 自定義事件開發 89

4.4 模塊裝配 92

4.4.1 前置概念解釋 92

4.4.2 手動裝配與自動裝配 92

4.4.3 使用簡單裝配 93

4.4.4 導入配置類 95

4.4.5 導入ImportSelector 97

4.4.6 導入ImportBeanDefinitionRegistrar 99

4.4.7 擴展:DeferredImportSelector 100

4.5 條件裝配 102

4.5.1 基於@Profile 註解的裝配 102

4.5.2 基於@Conditional 註解的裝配 104

4.5.3 擴展:@ConditionalOn×××註解 106

4.6 組件掃描機制 106

4.6.1 組件掃描的路徑 106

4.6.2 組件掃描的過濾 108

4.7 PropertySource 112

4.7.1 資源管理 112

4.7.2 @PropertySource 註解 113

4.7.3 引入YML 文件 114

4.8 小結 117

第二部分 Spring Boot 應用構建與核心特性

第 5 章 5.1 使用 Spring Boot 121

Spring Boot 概述 122

5.1.1 Spring Boot 的核心特性 122

5.1.2 Spring Boot 的體系 122

5.2 Spring Boot 快速使用 123

5.2.1 創建項目 123

5.2.2 快速編寫接口 128

5.2.3 打包運行 129

5.2.4 修改配置 130

5.3 Spring Boot 的依賴管理 130

5.3.1 場景啟動器 130

5.3.2 版本管理 131

5.4 Spring Boot 的自動裝配 132

5.4.1 組件自動裝配 132

5.4.2 默認組件掃描 133

5.4.3 配置屬性和外部化配置 133

5.4.4 自動配置類 134

5.4.5 自動配置報告 137

5.5 小結 138

第 6 章 Spring Boot 的最佳實踐 139

6.1 屬性配置 139

6.1.1 YML 格式語法 139

6.1.2 屬性綁定 142

6.2 外部化配置 146

6.2.1 Spring Boot 支持多種配置源 146

6.2.2 多環境開發 148

6.2.3 多環境配置文件 151

6.2.4 配置優先級 152

6.3 Banner 機制 153

6.3.1 Banner 的變更 153

6.3.2 Banner 的輸出模式 154

6.4 日誌的使用 154

6.4.1 日誌門面與實現 155

6.4.2 使用日誌打印 155

6.4.3 日誌格式 156

6.4.4 日誌級別 157

6.4.5 日誌分組 157

6.4.6 日誌輸出與歸檔 158

6.4.7 切換日誌實現 159

6.5 啟動過程的簡單擴展點 160

6.5.1 啟動過程簡單概述 160

6.5.2 啟動容器前的擴展 160

6.5.3 啟動容器時的擴展 160

6.5.4 啟動完成後的擴展 161

6.6 場景啟動器與自動裝配 161

6.6.1 場景啟動器的結構 162

6.6.2 自定義場景啟動器 162

6.7 啟動異常分析 166

6.7.1 FailureAnalyzer 167

6.7.2 重寫內置的異常分析 168

6.7.3 自定義異常分析 169

6.8 小結 170

第三部分 Spring Framework 的 AOP

第 7 章 AOP 思想與實現 175

7.1 AOP 是怎麼來的 175

7.1.1 日誌記錄 175

7.1.2 添加積分變動邏輯 177

7.1.3 引入設計模式 179

7.1.4 使用動態代理 182

7.1.5 代理對象的創建者 184

7.1.6 引入AOP 思想 188

7.2 AOP 的基礎-動態代理 188

7.2.1 JDK 動態代理的使用 188

7.2.2 Cglib 動態代理的使用 189

7.3 AOP 概述與術語 190

7.3.1 AOP 概述 190

7.3.2 AOP 的演變歷史 191

7.3.3 AOP 的基本術語 192

7.3.4 通知的類型 194

7.4 Spring Boot 使用 AOP-基於 AspectJ 194

7.4.1 搭建工程環境 195

7.4.2 前置測試代碼編寫 195

7.4.3 基於註解的AOP 編寫 196

7.4.4 切入點表達式的編寫方式 199

第四部分 7.4.5 使用環繞通知 203

7.5 Spring 使用 AOP-基於 XML 204

7.5.1 搭建工程環境 204

7.5.2 編寫配置文件 205

7.5.3 測試效果 207

7.5.4 其他註意事項 207

7.6 小結 207

第 8 章 AOP 的進階機制和應用 208

8.1 AOP 聯盟 208

8.2 通知方法參數 209

8.2.1 JoinPoint 209

8.2.2 ProceedingJoinPoint 的擴展 212

8.2.3 返回通知和異常通知的特殊參數 213

8.3 切麵的執行順序 213

8.3.1 多個切麵的執行順序 214

8.3.2 同切麵的多個通知執行順序 216

8.4 代理對象調用自身方法 217

8.5 小結 219

基於 WebMvc 的 Spring Boot Web 應用開發

第 9 章 使用 WebMvc 開發應用 223

9.1 整合 Web 和 WebMvc 223

9.1.1 MVC 三層架構 223

9.1.2 基於Servlet 3.0 規範整合Web 開發 224

9.1.3 Spring MVC 的歷史 228

9.1.4 基於Servlet 3.0 規範整合WebMvc 229

9.1.5 Spring Boot 整合WebMvc 233

9.2 視圖技術 234

9.2.1 Thymeleaf 概述與整合 235

9.2.2 Thymeleaf 快速上手 237

9.3 熱部署的使用 241

9.3.1 使用devtools 242

9.3.2 配置自動熱部署 242

9.4 頁面數據傳遞 243

9.4.1 頁面編寫 243

9.4.2 頁面跳轉 244

9.4.3 數據傳遞的方式 245

9.5 請求參數綁定 246

9.5.1 收集參數的方式 246

9.5.2 復雜類型參數收集 248

9.5.3 自定義參數類型轉換 252

9.6 常用註解的使用 254

9.6.1 @RequestMapping 254

9.6.2 @DateTimeFormat 255

9.6.3 @RestController 256

9.6.4 RESTful 編碼風格 256

9.7 JSON 支持 258

9.7.1 JSON 支持與配置 259

9.7.2 @ResponseBody 和

@RequestBody 259

9.8 靜態資源配置 261

9.8.1 默認的靜態資源位置 261

9.8.2 定製化靜態資源配置 262

9.9 數據校驗 262

9.9.1 頁面的數據校驗 263

9.9.2 後端的數據校驗 263

9.9.3 分組校驗 266

9.9.4 校驗錯誤信息外部化 267

9.10 內容協商 268

9.10.1 內容協商機制 268

9.10.2 基於請求頭的內容協商 269

9.10.3 基於請求參數的內容協商 270

9.11 異常處理 270

9.11.1 異常處理思路分析 270

9.11.2 @ExceptionHandler 註解 271

9.11.3 @ControllerAdvice 註解 272

9.11.4 多種異常處理共存 273

9.11.5 Spring Boot 的異常處理擴展 274

9.12 文件上傳與下載 276

9.12.1 基於表單的文件上傳 276

9.12.2 基於Ajax 的文件上傳 277

9.12.3 文件下載 278

9.13 小結 280

第 10 章 WebMvc 開發進階 281

10.1 攔截器 281

10.1.1 區分攔截器與過濾器 281

10.1.2 攔截器的攔截時機 282

10.1.3 使用攔截器 283

10.1.4 多個攔截器的執行機制 284

10.2 國際化支持 286

10.2.1 約定的國際化 286

10.2.2 切換國際化語言 288

10.2.3 更改默認配置 289

10.3 原生 Servlet 支持與適配 290

10.3.1 全局獲取request 和

response 290

10.3.2 請求轉發與重定向 291

10.3.3 操縱request 域數據 292

10.3.4 操縱session 域數據 295

10.3.5 獲取請求頭的數據 296

10.3.6 註冊Servlet 原生組件 297

10.4 跨域問題 299

10.4.1 同源策略與跨域問題 299

10.4.2 演示跨域現象 300

10.4.3 CORS 解決跨域問題 301

10.4.4 @CrossOrigin 註解的細節 302

10.4.5 全局設置跨域 303

10.5 REST 服務請求與調用 303

10.5.1 RestTemplate 303

10.5.2 RestClient 308

10.5.3 HTTP 聲明式接口 310

10.6 Reactive 與 WebFlux 312

10.7 小結 312

第 11 章 嵌入式容器 313

11.1 Web 容器對比 313

11.2 使用嵌入式 Tomcat 314

11.3 定製嵌入式容器 315

11.3.1 修改配置屬性 315

11.3.2 使用定製器 316

11.4 替換嵌入式容器 317

11.5 SSL 配置 317

11.6 小結 319

第五部分 Spring Boot 的數據訪問能力整合

第 12 章 JDBC 與事務 323

12.1 整合 JDBC 323

12.1.1 數據庫準備 323

12.1.2 導入依賴 324

12.1.3 快速使用 325

12.1.4 Spring Framework 整合

JDBC 328

12.1.5 Spring Boot 整合JDBC 329

12.2 使用 JdbcTemplate 331

12.2.1 基本使用 331

12.2.2 JdbcTemplate 應用於Dao 層 337

12.2.3 查詢策略 339

12.3 JDBC 事務管理 340

12.3.1 事務回顧 340

12.3.2 原生JDBC 事務 341

12.4 Spring Framework 的事務管理 343

12.4.1 代碼準備 343

12.4.2 編程式事務控制 344

12.4.3 聲明式事務控制 345

12.4.4 事務控制失效的場景 347

12.5 事務傳播行為 347

12.5.1 理解事務傳播行為 347

12.5.2 事務傳播行為的7 種策略 349

12.5.3 使用事務傳播行為 350

12.6 數據庫初始化機制 351

12.6.1 DDL 語句發送 351

12.6.2 DML 語句發送 352

12.6.3 多平臺兼容與初始化策略 353

12.7 小結 353

第 13 章 整合 MyBatis 354

13.1 MyBatis 概述 354

13.1.1 MyBatis 的歷史 354

13.1.2 MyBatis 的架構 355

13.1.3 MyBatis 的配置 356

13.2 整合MyBatis 356

13.2.1 導入依賴 356

13.2.2 準備基礎代碼 357

13.2.3 測試效果 359

13.3 MyBatis 簡單開發 360

13.3.1 常用的配置屬性 360

13.3.2 註解式Mapper 接口 361

13.3.3 動態SQL 361

13.3.4 緩存機制 362

13.3.5 插件機制 363

13.4 效率提升:整合

MyBatis-Plus 364

13.4.1 MyBatis-Plus 概述 364

13.4.2 Spring Boot 整合

MyBatis-Plus 365

13.5 使用MyBatis-Plus 368

13.5.1 CRUD 基礎接口 368

13.5.2 Wrapper 機制 369

13.5.3 主鍵策略與ID 生成器 371

13.5.4 邏輯刪除 371

13.5.5 樂觀鎖插件 372

13.5.6 分頁插件 373

13.5.7 代碼生成器 374

13.6 小結 375

第六部分 Spring Boot 應用的生產與運維

第 14 章 14.1 打包與部署 379

Spring Boot 應用打包 379

14.1.1 製作簡易工程 379

14.1.2 使用Maven 打包工程 380

14.1.3 運行工程與打包插件 381

14.2 使用外置 Servlet 容器運行 383

14.2.1 war 包方式打包的準備 383

14.2.2 製作war 包 384

14.3 製作 Docker 鏡像 385

14.3.1 Docker 基礎 385

14.3.2 Dockerfile 文件 386

14.3.3 使用Dockerfile 構建鏡像 386

14.3.4 使用Maven 插件構建鏡像 387

14.4 小結 389

第 15 章 15.1 生產級特性 390

Spring Boot Actuator 390

15.1.1 背景與方案 390

15.1.2 整合使用 391

15.2 監控端點 Endpoints 391

15.2.1 health 392

15.2.2 beans 393

15.2.3 conditions 394

15.2.4 configprops 和env 396

15.2.5 mappings 398

15.2.6 loggers 399

15.2.7 info 400

15.2.8 擴展health 400

15.2.9 擴展監控端點 403

15.2.10 保護端點安全 404

15.2.11 使用JMX 訪問 404

15.3 監控指標 Metrics 406

15.3.1 內置指標 406

15.3.2 自定義指標 407

15.3.3 基於場景的指標 408

15.4 管理 Spring Boot 應用 410

15.4.1 搭建Admin Server 411

15.4.2 應用註冊到Admin Server 412

15.4.3 查看應用實例信息 413

15.5 使用監控體系 416

15.5.1 監控系統Prometheus 416

15.5.2 Actuator 輸出到Prometheus 418

15.5.3 可視化監控平臺Grafana 420

15.5.4 利用Grafana 實現監控告警 422

15.6 小結 424