Spring Boot 進階:原理、實戰與面試題分析

鄭天民著

  • 出版商: 機械工業
  • 出版日期: 2022-06-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 352
  • 裝訂: 平裝
  • ISBN: 7111706749
  • ISBN-13: 9787111706748
  • 相關分類: Java 相關技術面試技巧
  • 立即出貨

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

商品描述

這是一本能帶領讀者全方位掌握Spring Boot技術體系的功能、
原理和Z佳實踐的著作,能幫助讀者在Spring Boot領域快速實現從入門到進階。
全書涵蓋Spring Boot的6大核心主題:核心容器、Web服務、緩存、
數據訪問、並發執行、監控與擴展,內容具有以下4大特性:
針對性:系統梳理了6個主題所包含技術的功能特性、工作原理、
實踐方案,讀者能快速掌握其核心技術、底層設計理念和生態擴展;
創新性:與同類書不同,本書蒐集並分析了每個主題下的高頻面試題,旨在幫助讀者在面試和晉升時事半功倍;
實戰性:注重實用性,基於作者近15年的經驗,通過豐富的場景案例提供了大量應用方案和Z佳實踐;
前瞻性:不僅系統講解了常用的核心技術,而且還講解了時下流行的雲原生、RSocket等前沿技術及其應用方案。

作者簡介

鄭天民
資深架構師和技術專家,有近15年的軟件研發和架構經驗。
現擔任某健康科技公司技術總監,先後就職於多家大型上市公司和互聯網獨角獸公司,
擔任系統架構師、技術總監和CTO等職務。
對架構設計和技術管理有深入的理解,積累了豐富的經驗,
研發和主持過10餘個面向研發人員的技術和管理類培訓課程。
熱衷於總結和分享,著作有《系統架構設計》等,譯作有《Spring響應式編程》等。
阿里雲MVP、騰訊雲TVP、TGO鯤鵬會會員。
 

目錄大綱

一部分 Spring Boot概述
1章 引入Spring Boot 2
1.1 Spring核心概念 2
1.1.1 Spring基礎框架 3
1.1.2 Spring技術生態 4
1.2 開發Spring Boot應用程序 5
1.2.1 從Spring到Spring Boot 5
1.2.2 Spring Boot應用程序結構和示例 6
1.2.3 Spring Boot配置體系 11
1.3 Spring Boot實戰內容和案例 13
1.3.1 核心容器 14
1.3.2 Web服務 15
1.3.3 內置緩存 16
1.3.4 數據訪問 17
1.3.5 並發編程 19
1.3.6 監控和擴展 20
1.4 本章小結 22
二部分 核心容器
2章 依賴注入類型和原理 24
2.1 Spring依賴注入類型 24
2.1.1 字段注入 25
2.1.2 構造器注入 26
2.1.3 Setter方法注入 27
2.2 Spring依賴注入原理分析 28
2.2.1 Bean的註冊 29
2.2.2 Bean的實例化 31
2.3 Spring循環依賴案例分析 33
2.3.1 三級緩存結構 34
2.3.2 循環依賴解決方案 36
2.3.3 消除循環依賴案例分析 37
2.4 Spring依賴注入實戰經驗 42
2.4.1 把握Bean的作用域 42
2.4.2 靈活使用註解配置 43
2.4.3 設置組件掃描範圍 44
2.4.4 不同配置的性能分析 44
2.5 Spring依賴注入面試題分析 45
2.6 本章小結 46
3章 面向切面概念和實踐 47
3.1 面向切面與Spring AOP 48
3.1.1 Spring AOP核心概念 48
3.1.2 Spring AOP案例分析 49
3.2 動態代理機制與Spring AOP 52
3.2.1 JDK動態代理 53
3.2.2 CGLIB動態代理 54
3.2.3 ProyFactoryBean 55
3.3 AOP代理機制對性能的影響案例分析 57
3.3.1 測試案例設計 57
3.3.2 案例結果分析 59
3.4 AOP實戰經驗 59
3.4.1 活用切點表達式 59
3.4.2 確保類內方法調用能夠應用代理 61
3.4.3 避免代理機制引起多次初始化過程 62
3.4.4 優先使用JDK動態代理 62
3.5 Spring AOP面試題分析 62
3.6 本章小結 63
三部分 Web 服務
4章 構建輕量級Web技術體系 66
4.1 Spring WebMVC 66
4.1.1 創建Web服務 67
4.1.2 消費Web服務 69
4.1.3 RestTemplate遠程調用原理分析 71
4.1.4 Spring WebMVC案例分析 80
4.2 Spring HATEOAS 83
4.2.1 HATEOAS和HAL 84
4.2.2 引入Spring HATEOAS 87
4.2.3 Spring HATEOAS案例分析 87
4.3 Spring GraphQL 93
4.3.1 GraphQL與RESTful API 94
4.3.2 集成Spring和GraphQL 96
4.3.3 Spring GraphQL案例分析 100
4.4 輕量級Web實戰經驗 105
4.4.1 設計合理的HTTP端點 106
4.4.2 開發自解釋型Open API 106
4.4.3 使用GraphQL替代RESTful API 107
4.5 輕量級Web面試題分析 108
4.6 本章小結 110
5章 應用響應式Web開發組件 111
5.1 響應式編程和Spring Boot 111
5.1.1 響應式流規範和實現框架 111
5.1.2 響應式編程的應用場景分析 115
5.1.3 Spring響應式編程組件 117
5.2 Spring WebFlu 119
5.2.1 對比WebMVC和WebFlu架構 119
5.2.2 創建響應式Web API 121
5.2.3 消費響應式Web API 123
5.2.4 Spring WebFlu案例分析 124
5.3 Spring RSocket 129
5.3.1 RSocket協議 129
5.3.2 RSocket編程模型 130
5.3.3 Spring RSocket案例分析 132
5.4 響應式Web實戰經驗 135
5.4.1 使用非阻塞式Web服務提升系統性能 135
5.4.2 構建全棧響應式服務體系 137
5.4.3 使用RSocket替代HTTP 138
5.5 響應式Web面試題分析 139
5.6 本章小結 140
部分 內置緩存
6章 打造高性能係統緩存 142
6.1 緩存註解 142
6.1.1 @Cacheable註解 143
6.1.2 @CachePut註解 145
6.1.3 @CacheEvict註解 145
6.2 緩存鍵管理 146
6.2.1 自定義鍵生成策略 146
6.2.2 默認鍵生成策略 147
6.3 緩存配置 147
6.4 Spring緩存案例分析 150
6.5 緩存實現原理 154
6.5.1 Cache和CacheManager接口 155
6.5.2 CacheInterceptor攔截器 158
6.6 系統緩存實戰經驗 160
6.6.1 使用自定義緩存註解 161
6.6.2 使用自定義緩存鍵生成器 161
6.6.3 自定義Cache和CacheManager 162
6.7 系統緩存面試題分析 164
6.8 本章小結 165
7章 為安全控制添加認證緩存 166
7.1 Spring Security安全框架 166
7.1.1 Spring Security認證架構 166
7.1.2 Spring Security用戶認證配置實例 168
7.2 Spring Security與認證緩存 169
7.2.1 安全性處理對性能的影響 169
7.2.2 認證緩存 170
7.3 Spring Security認證緩存案例分析 172
7.3.1 初始化用戶認證數據 173
7.3.2 集成用戶認證緩存 174
7.4 認證緩存原理分析 178
7.4.1 UserDetails和Authentication 178
7.4.2 UserCache和Authentication-Provider 181
7.5 認證緩存實戰經驗 182
7.5.1 自定義UserDetails 182
7.5.2 自定義Authentication-Provider 183
7.6 認證緩存面試題分析 184
7.7 本章小結 185
五部分 數據訪問
8章 Spring JDBC解決方案 188
8.1 JDBC規範 188
8.2 Spring JDBC解決方案 189
8.2.1 Spring JDBC工具類概覽 189
8.2.2 JdbcTemplate應用 190
8.2.3 SimpleJdbcInsert應用 196
8.2.4 Spring JDBC案例分析 197
8.3 JdbcTemplate實現原理 198
8.3.1?模板方法和回調機制 198
8.3.2 從JDBC API到Jdbc-Template的演變 199
8.3.3 JdbcTemplate源碼解析 203
8.4 Spring JDBC實戰經驗 205
8.4.1?優化事務隔離等級 205
8.4.2?優化Fetch Size 205
8.4.3?優化連接池配置 206
8.4.4?選擇合適的Statement 207
8.4.5?使用批處理 207
8.4.6?選擇合適的提交模式 208
8.5 Spring JDBC面試題分析 208
8.6 本章小結 209
9章 應用Spring ORM佳實踐 210
9.1 Spring Data架構與應用 210
9.1.1 Spring Data架構 210
9.1.2 Spring Data JPA 212
9.1.3 Spring Data JPA案例分析 212
9.2 N+1性能問題 216
9.2.1 N+1問題分析 217
9.2.2 JOIN FETCH 221
9.3 Spring ORM實戰經驗 224
9.3.1 通過統計找到數據訪問瓶頸 224
9.3.2 使用延遲加載降低數據庫訪問 224
9.3.3 使用多級緩存提升數據訪問性能 225
9.4 Spring ORM面試題分析 226
9.5 本章小結 227
六部分 並發編程
10章 解析Spring Async並發編程 230
10.1 Spring @Async註解 230
10.1.1 @Async註解的異步處理機制 230
10.1.2 @Async註解的兩種處理模式 232
10.2 Spring @Async實現原理 234
10.2.1 基於代理的異步執行模型案例分析 234
10.2.2 Spring @Async註解原理分析 238
10.3 Spring Web異步處理 244
10.3.1 Web異步處理需求和場景 244
10.3.2 WebAsyncTask 245
10.3.3 Web異步處理案例分析 246
10.4 Spring Async實戰經驗 249
10.4.1 靈活使用多種Future機制 249
10.4.2 合理設置線程池 251
10.5 Spring Async面試題分析 252
10.6 本章小結 253
11章 使用任務執行器和調度器 254
11.1 Java執行器模型 254
11.1.1 Eecutor 255
11.1.2 ThreadPool 255
11.2 Spring任務執行器 257
11.2.1 TaskEecutor應用方式 257
11.2.2 TaskEecutor運行原理 258
11.3 Spring任務調度器 261
11.3.1 TaskScheduler應用方式 261
11.3.2 TaskScheduler運行原理 262
11.4 任務執行器和調度器實戰經驗 264
11.4.1 靈活使用多種TaskEecutor 264
11.4.2 @Scheduled註解的使用技巧 265
11.5 任務執行器和調度器面試題分析 265
11.6 本章小結 266
七部分 監控和擴展
12章 為應用程序添加系統監控 268
12.1 Spring Boot Actuator組件 268
12.1.1 Actuator組件 268
12.1.2 擴展Actuator端點案例分析 272
12.1.3 自定義Actuator端點案例分析 274
12.1.4 Actuator組件在Spring家族中的應用案例 276
12.2 Admin Server組件 278
12.2.1 構建Admin Server 278
12.2.2 Admin Server系統監控案例分析 282
12.3 系統監控實戰經驗 286
12.3.1 通過替換默認組件提升Spring Boot性能 286
12.3.2 使用PerformanceMonitor-Interceptor 288
12.3.3 實現自定義的性能度量指標 289
12.4 系統監控面試題分析 290
12.5 本章小結 291
13章 Spring Boot生態體系及擴展 292
13.1 Spring Boot Starter原理與應用 292
13.1.1 Spring Boot自動配置原理 293
13.1.2 基於Starter集成Spring Boot案例分析 302
13.2 Spring Boot與微服務 306
13.2.1 微服務架構簡介 306
13.2.2 Spring Cloud與Spring Boot 307
13.2.3 Spring微服務架構案例分析 308
13.3 Spring Boot與雲原生 316
13.3.1 Spring Native和原生鏡像 316
13.3.2 Spring Native案例分析 317
13.4 測試Spring Boot 320
13.4.1 Spring Boot中的測試解決方案 320
13.4.2 Spring Boot應用程序的測試流程 322
13.4.3 測試Spring Boot數據訪問層 325
13.4.4 測試Spring Boot業務邏輯層 326
13.4.5 測試Spring Boot Web服務層 330
13.4.6 Spring Boot測試案例分析 334
13.5 生態擴展面試題分析 337
13.6 本章小結 338