《Spring Boot進(jìn)階:原理、實(shí)戰(zhàn)與面試題分析》15年架構(gòu)和研發(fā)經(jīng)驗(yàn)專家撰寫,全面掌握Spring Boot原理和實(shí)踐,快速從入門到進(jìn)階,60余道大廠面試題解析
定 價(jià):99 元
- 作者:鄭天民 著
- 出版時(shí)間:2022/6/1
- ISBN:9787111706748
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:352
- 紙張:
- 版次:
- 開本:16
內(nèi)容簡介
這是一本能帶領(lǐng)讀者全方位掌握Spring Boot技術(shù)體系的功能、原理和Z佳實(shí)踐的著作,能幫助讀者在Spring Boot領(lǐng)域快速實(shí)現(xiàn)從入門到進(jìn)階。
全書涵蓋Spring Boot的6大核心主題:核心容器、Web服務(wù)、緩存、數(shù)據(jù)訪問、并發(fā)執(zhí)行、監(jiān)控與擴(kuò)展,內(nèi)容具有以下4大特性:
?針對性:系統(tǒng)梳理了6個(gè)主題所包含技術(shù)的功能特性、工作原理、實(shí)踐方案,讀者能快速掌握其核心技術(shù)、底層設(shè)計(jì)理念和生態(tài)擴(kuò)展;
?創(chuàng)新性:與同類書不同,本書搜集并分析了每個(gè)主題下的高頻面試題,旨在幫助讀者在面試和晉升時(shí)事半功倍;
?實(shí)戰(zhàn)性:注重實(shí)用性,基于作者近15年的經(jīng)驗(yàn),通過豐富的場景案例提供了大量應(yīng)用方案和Z佳實(shí)踐;
?前瞻性:不僅系統(tǒng)講解了常用的核心技術(shù),而且還講解了時(shí)下流行的云原生、RSocket等前沿技術(shù)及其應(yīng)用方案。
前言
第一部分 Spring Boot概述
第1章 引入Spring Boot 2
1.1 Spring核心概念 2
1.1.1 Spring基礎(chǔ)框架 3
1.1.2 Spring技術(shù)生態(tài) 4
1.2 開發(fā)Spring Boot應(yīng)用程序 5
1.2.1 從Spring到Spring Boot 5
1.2.2 Spring Boot應(yīng)用程序結(jié)構(gòu)和示例 6
1.2.3 Spring Boot配置體系 11
1.3 Spring Boot實(shí)戰(zhàn)內(nèi)容和案例 13
1.3.1 核心容器 14
1.3.2 Web服務(wù) 15
1.3.3 內(nèi)置緩存 16
1.3.4 數(shù)據(jù)訪問 17
1.3.5 并發(fā)編程 19
1.3.6 監(jiān)控和擴(kuò)展 20
1.4 本章小結(jié) 22
第二部分 核心容器
第2章 依賴注入類型和原理 24
2.1 Spring依賴注入類型 24
2.1.1 字段注入 25
2.1.2 構(gòu)造器注入 26
2.1.3 Setter方法注入 27
2.2 Spring依賴注入原理分析 28
2.2.1 Bean的注冊 29
2.2.2 Bean的實(shí)例化 31
2.3 Spring循環(huán)依賴案例分析 33
2.3.1 三級緩存結(jié)構(gòu) 34
2.3.2 循環(huán)依賴解決方案 36
2.3.3 消除循環(huán)依賴案例分析 37
2.4 Spring依賴注入實(shí)戰(zhàn)經(jīng)驗(yàn) 42
2.4.1 把握Bean的作用域 42
2.4.2 靈活使用注解配置 43
2.4.3 設(shè)置組件掃描范圍 44
2.4.4 不同配置的性能分析 44
2.5 Spring依賴注入面試題分析 45
2.6 本章小結(jié) 46
第3章 面向切面概念和實(shí)踐 47
3.1 面向切面與Spring AOP 48
3.1.1 Spring AOP核心概念 48
3.1.2 Spring AOP案例分析 49
3.2 動(dòng)態(tài)代理機(jī)制與Spring AOP 52
3.2.1 JDK動(dòng)態(tài)代理 53
3.2.2 CGLIB動(dòng)態(tài)代理 54
3.2.3 ProxyFactoryBean 55
3.3 AOP代理機(jī)制對性能的影響案例分析 57
3.3.1 測試案例設(shè)計(jì) 57
3.3.2 案例結(jié)果分析 59
3.4 AOP實(shí)戰(zhàn)經(jīng)驗(yàn) 59
3.4.1 活用切點(diǎn)表達(dá)式 59
3.4.2 確保類內(nèi)方法調(diào)用能夠應(yīng)用代理 61
3.4.3 避免代理機(jī)制引起多次初始化過程 62
3.4.4 優(yōu)先使用JDK動(dòng)態(tài)代理 62
3.5 Spring AOP面試題分析 62
3.6 本章小結(jié) 63
第三部分 Web 服務(wù)
第4章 構(gòu)建輕量級Web技術(shù)體系 66
4.1 Spring WebMVC 66
4.1.1 創(chuàng)建Web服務(wù) 67
4.1.2 消費(fèi)Web服務(wù) 69
4.1.3 RestTemplate遠(yuǎn)程調(diào)用原理分析 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實(shí)戰(zhàn)經(jīng)驗(yàn) 105
4.4.1 設(shè)計(jì)合理的HTTP端點(diǎn) 106
4.4.2 開發(fā)自解釋型Open API 106
4.4.3 使用GraphQL替代RESTful API 107
4.5 輕量級Web面試題分析 108
4.6 本章小結(jié) 110
第5章 應(yīng)用響應(yīng)式Web開發(fā)組件 111
5.1 響應(yīng)式編程和Spring Boot 111
5.1.1 響應(yīng)式流規(guī)范和實(shí)現(xiàn)框架 111
5.1.2 響應(yīng)式編程的應(yīng)用場景分析 115
5.1.3 Spring響應(yīng)式編程組件 117
5.2 Spring WebFlux 119
5.2.1 對比WebMVC和WebFlux架構(gòu) 119
5.2.2 創(chuàng)建響應(yīng)式Web API 121
5.2.3 消費(fèi)響應(yīng)式Web API 123
5.2.4 Spring WebFlux案例分析 124
5.3 Spring RSocket 129
5.3.1 RSocket協(xié)議 129
5.3.2 RSocket編程模型 130
5.3.3 Spring RSocket案例分析 132
5.4 響應(yīng)式Web實(shí)戰(zhàn)經(jīng)驗(yàn) 135
5.4.1 使用非阻塞式Web服務(wù)提升系統(tǒng)性能 135
5.4.2 構(gòu)建全棧響應(yīng)式服務(wù)體系 137
5.4.3 使用RSocket替代HTTP 138
5.5 響應(yīng)式Web面試題分析 139
5.6 本章小結(jié) 140
第四部分 內(nèi)置緩存
第6章 打造高性能系統(tǒng)緩存 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 默認(rèn)鍵生成策略 147
6.3 緩存配置 147
6.4 Spring緩存案例分析 150
6.5 緩存實(shí)現(xiàn)原理 154
6.5.1 Cache和CacheManager接口 155
6.5.2 CacheInterceptor攔截器 158
6.6 系統(tǒng)緩存實(shí)戰(zhàn)經(jīng)驗(yàn) 160
6.6.1 使用自定義緩存注解 161
6.6.2 使用自定義緩存鍵生成器 161
6.6.3 自定義Cache和CacheManager 162
6.7 系統(tǒng)緩存面試題分析 164
6.8 本章小結(jié) 165
第7章 為安全控制添加認(rèn)證緩存 166
7.1 Spring Security安全框架 166
7.1.1 Spring Security認(rèn)證架構(gòu) 166
7.1.2 Spring Security用戶認(rèn)證配置實(shí)例 168
7.2 Spring Security與認(rèn)證緩存 169
7.2.1 安全性處理對性能的影響 169
7.2.2 認(rèn)證緩存 170
7.3 Spring Security認(rèn)證緩存案例分析 172
7.3.1 初始化用戶認(rèn)證數(shù)據(jù) 173
7.3.2 集成用戶認(rèn)證緩存 174
7.4 認(rèn)證緩存原理分析 178
7.4.1 UserDetails和Authentication 178
7.4.2 UserCache和Authentication-Provider 181
7.5 認(rèn)證緩存實(shí)戰(zhàn)經(jīng)驗(yàn) 182
7.5.1 自定義UserDetails 182
7.5.2 自定義Authentication-Provider 183
7.6 認(rèn)證緩存面試題分析 184
7.7 本章小結(jié) 185
第五部分 數(shù)據(jù)訪問
第8章 Spring JDBC解決方案 188
8.1 JDBC規(guī)范 188
8.2 Spring JDBC解決方案 189
8.2.1 Spring JDBC工具類概覽 189
8.2.2 JdbcTemplate應(yīng)用 190
8.2.3 SimpleJdbcInsert應(yīng)用 196
8.2.4 Spring JDBC案例分析 197
8.3 JdbcTemplate實(shí)現(xiàn)原理 198
8.3.1?模板方法和回調(diào)機(jī)制 198
8.3.2 從JDBC API到Jdbc-Template的演變 199
8.3.3 JdbcTemplate源碼解析 203
8.4 Spring JDBC實(shí)戰(zhàn)經(jīng)驗(yàn) 205
8.4.1?優(yōu)化事務(wù)隔離等級 205
8.4.2?優(yōu)化Fetch Size 205
8.4.3?優(yōu)化連接池配置 206
8.4.4?選擇合適的Statement 207
8.4.5?使用批處理 207
8.4.6?選擇合適的提交模式 208
8.5 Spring JDBC面試題分析 208
8.6 本章小結(jié) 209
第9章 應(yīng)用Spring ORM最佳實(shí)踐 210
9.1 Spring Data架構(gòu)與應(yīng)用 210
9.1.1 Spring Data架構(gòu) 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實(shí)戰(zhàn)經(jīng)驗(yàn) 224
9.3.1 通過統(tǒng)計(jì)找到數(shù)據(jù)訪問瓶頸 224
9.3.2 使用延遲加載降低數(shù)據(jù)庫訪問 224
9.3.3 使用多級緩存提升數(shù)據(jù)訪問性能 225
9.4 Spring ORM面試題分析 226
9.5 本章小結(jié) 227
第六部分 并發(fā)編程
第10章 解析Spring Async并發(fā)編程 230
10.1 Spring @Async注解 230
10.1.1 @Async注解的異步處理機(jī)制 230
10.1.2 @Async注解的兩種處理模式 232
10.2 Spring @Async實(shí)現(xiàn)原理 234
10.2.1 基于代理的異步執(zhí)行模型案例分析 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實(shí)戰(zhàn)經(jīng)驗(yàn) 249
10.4.1 靈活使用多種Future機(jī)制 249
10.4.2 合理設(shè)置線程池 251
10.5 Spring Async面試題分析 252
10.6 本章小結(jié) 253
第11章 使用任務(wù)執(zhí)行器和調(diào)度器 254
11.1 Java執(zhí)行器模型 254
11.1.1 Executor 255
11.1.2 ThreadPool 255
11.2 Spring任務(wù)執(zhí)行器 257
11.2.1 TaskExecutor應(yīng)用方式 257
11.2.2 TaskExecutor運(yùn)行原理 258
11.3 Spring任務(wù)調(diào)度器 261
11.3.1 TaskScheduler應(yīng)用方式 261
11.3.2 TaskScheduler運(yùn)行原理 262
11.4 任務(wù)執(zhí)行器和調(diào)度器實(shí)戰(zhàn)經(jīng)驗(yàn) 264
11.4.1 靈活使用多種TaskExecutor 264
11.4.2 @Scheduled注解的使用技巧 265
11.5 任務(wù)執(zhí)行器和調(diào)度器面試題分析 265
11.6 本章小結(jié) 266
第七部分 監(jiān)控和擴(kuò)展
第12章 為應(yīng)用程序添加系統(tǒng)監(jiān)控 268
12.1 Spring Boot Actuator組件 268
12.1.1 Actuator組件 268
12.1.2 擴(kuò)展Actuator端點(diǎn)案例分析 272
12.1.3 自定義Actuator端點(diǎn)案例分析 274
12.1.4 Actuator組件在Spring家族中的應(yīng)用案例 276
12.2 Admin Server組件 278
12.2.1 構(gòu)建Admin Server 278
12.2.2 Admin Server系統(tǒng)監(jiān)控案例分析 282
12.3 系統(tǒng)監(jiān)控實(shí)戰(zhàn)經(jīng)驗(yàn) 286
12.3.1 通過替換默認(rèn)組件提升Spring Boot性能 286
12.3.2 使用PerformanceMonitor-Interceptor 288
12.3.3 實(shí)現(xiàn)自定義的性能度量指標(biāo) 289
12.4 系統(tǒng)監(jiān)控面試題分析 290
12.5 本章小結(jié) 291
第13章 Spring Boot生態(tài)體系及擴(kuò)展 292
13.1 Spring Boot Starter原理與應(yīng)用 292
13.1.1 Spring Boot自動(dòng)配置原理 293
13.1.2 基于Starter集成Spring Boot案例分析 302
13.2 Spring Boot與微服務(wù) 306
13.2.1 微服務(wù)架構(gòu)簡介 306
13.2.2 Spring Cloud與Spring Boot 307
13.2.3 Spring微服務(wù)架構(gòu)案例分析 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應(yīng)用程序的測試流程 322
13.4.3 測試Spring Boot數(shù)據(jù)訪問層 325
13.4.4 測試Spring Boot業(yè)務(wù)邏輯層 326
13.4.5 測試Spring Boot Web服務(wù)層 330
13.4.6 Spring Boot測試案例分析 334
13.5 生態(tài)擴(kuò)展面試題分析 337
13.6 本章小結(jié) 338