商品簡介
這是一本能帶領讀者全方位掌握Spring Boot技術體系的功能、原理和Z佳實踐的著作,能幫助讀者在Spring Boot領域快速實現從入門到進階。
全書涵蓋Spring Boot的6大核心主題:核心容器、Web服務、緩存、數據訪問、並發執行、監控與擴展,內容具有以下4大特性:
1.針對性:系統梳理了6個主題所包含技術的功能特性、工作原理、實踐方案,讀者能快速掌握其核心技術、底層設計理念和生態擴展;
2.創新性:與同類書不同,本書搜集並分析了每個主題下的高頻面試題,旨在幫助讀者在面試和晉升時事半功倍;
3.實戰性:注重實用性,基於作者近15年的經驗,通過豐富的場景案例提供了大量應用方案和Z佳實踐;
4.前瞻性:不僅系統講解了常用的核心技術,而且還講解了時下流行的云原生、RSocket等前沿技術及其應用方案。
作者簡介
鄭天民
資深架構師和技術專家,有近15年的軟件研發和架構經驗。現擔任某知名健康科技公司技術總監,先後就職於多家大型上市公司和互聯網獨角獸公司,擔任系統架構師、技術總監和CTO等職務。
對架構設計和技術管理有深入的理解,積累了豐富的經驗,研發和主持過10余個面向研發人員的技術和管理類培訓課程。熱衷於總結和分享,著作有《系統架構設計》等,譯作有《Spring響應式編程》等。 阿裡云MVP、騰訊云TVP、TGO鯤鵬會會員。
名人/編輯推薦
(1)作者經驗豐富:15年研發和架構經驗,曾擔任多家上市公司和獨角獸公司技術總監和CTO等職務,對Spring技術棧有深入研究。
(2)內容針對性強:系統梳理了Spring Boot的6個主題所包含技術的功能特性、工作原理、實踐方案,讀者能快速掌握其核心技術、底層設計理念和生態擴展。
(3)內容有創新性:與同類書不同,本書搜集並分析了每個主題下的高頻大廠面試題,旨在幫助讀者在面試和晉升時事半功倍。
(4)內容實戰性強:注重實用性,基於作者近15年的經驗,通過豐富的場景案例提供了大量應用方案和Z佳實踐。
(5)技術前瞻性:不僅系統講解了常用的核心技術,而且還講解了時下流行的云原生、RSocket等前沿技術及其應用方案。
序
【為什麼要寫這本書】
在當下的互聯網應用中,業務體系日益複雜,業務功能也在不斷地變化。以典型的電商類應用為例,其背後的業務功能複雜度以及快速迭代要求的開發速度,與5年前的同類業務系統相比,面臨著諸多新的挑戰。這些挑戰中核心的一點就是快速高效地實現系統功能,同時保證代碼持續可維護,這是一個非常現實且亟待解決的問題。
面對這樣的挑戰,需要強調一個觀點,就是保持開發過程的簡單性,而這種簡單性很大程度上來自開發框架。在Java EE領域中,Spring Boot作為Spring家族中的一員,在傳統Spring框架的基礎上做了創新和優化,將開發人員從以往煩瑣的配置工作中解放了出來,並提供了大量的即插即用的集成化組件,從而減少了開發過程中各種組件之間複雜的整合,提高了開發效率,降低了維護成本。
Spring Boot讓配置、代碼編寫、部署和監控都更簡單了,因此日益受到開發者的青睞。Spring Boot從2015年開始在國內走紅,越來越多的企業選擇將Spring Boot作為系統開發的首選框架。如今,Spring Boot已經成為Java工程師必須熟練掌握的基本技能。
但Spring Boot技術體系並不簡單,包含大量的技術組件。那麼,如何基於Spring Boot從零開始構建一個完整的應用程序?如何高效地掌握Spring Boot中這些技術組件的使用方法和技巧?如何在學習過程中避免掉進“坑”裡?這些是學習Spring Boot 的廣大開發人員想要知道的。
另外,我們知道,Spring Boot是一個集成性的開源框架,內部整合了很多第三方組件和框架。這些組件和框架應用如此之廣泛,以至於大家反而往往對如何更好地使用Spring Boot自身的功能特性並不是很重視。事實上,Spring Boot自身的功能特性同樣非常豐富,而且在使用上也存在一些最佳實踐。
本書對Spring Boot的各項功能特性及其最佳實踐、實現原理展開討論,涵蓋了核心容器、Web服務、內置緩存、數據訪問、並發編程、監控和擴展等一系列核心主題,這些核心主題也廣泛應用於Spring家族中的其他開發框架。
【讀者物件】
本書面向的讀者如下。
1.Java後端開發人員。這部分讀者希望通過引入或者更好地使用 Spring Boot框架來提高自身的開發能力。本書作為體系化的Spring Boot框架最佳實踐指南,能夠為這類讀者提供全面且完整的技術體系和實踐技巧。
2.對Spring Boot框架有興趣的開發人員。這部分讀者希望通過一套優秀的開源框架來構建常用的開發技術體系。對於這部分讀者而言,本書是一個很好的選擇,Spring Boot中的各個功能組件入門比較簡單,和JDK的集成性也很好,內部的設計理念也大多具備通用性。
3.廣大高校學生。這部分讀者希望系統學習一款主流的開發工具和框架,從而為後續的學習和工作打好基礎。
【本書特色】
本書從Spring Boot進階的角度切入,具備原創性和體系化,主要體現在五個方面。
1.對Spring Boot框架使用過程中的最佳實踐進行了模塊化梳理,分為核心容器、Web服務、內置緩存、數據訪問、並發編程以及監控和擴展等六大模塊,每個模塊又基於Spring Boot中對應的核心技術組件展開討論。
2.對於Spring Boot框架所提供的技術組件,從組件所依賴的基礎要素出發進行分析,並給出組件的詳細使用方法。同時,對於組件的功能特性,基於完整的案例代碼給出開發和實踐技巧。
3.對於涉及依賴注入、面向切面、緩存、數據訪問、異步編程等通用化的功能組件,理論聯繫實際,從實現機制和內部原理角度出發詳細分析組件背後的架構思想以及設計方法,並給出源碼級的系統講解。
4.對每個Spring Boot主題都給出高頻的面試題分析,結合主題的主體內容提供面試過程中的問題點,以及應對這些問題點的回答技巧。
5.本書描述的部分Spring Boot核心功能,例如剛成為Spring頂級項目的Spring GraphQL、基於響應式編程的Spring RSocket協議、用於實現系統安全的認證緩存等,在同類書籍中還沒有出現過。
【如何閱讀本書】
本書分成以下七部分。
1:Spring Boot概述。在這一部分,我們介紹Spring Boot框架中的基本概念,並通過簡單的案例介紹Spring Boot框架的基本使用方法。通過這一部分的學習,讀者可以快速掌握Spring Boot的入門知識。
2:核心容器。在這一部分,我們介紹在使用Spring容器時應該關注的最佳實踐,並討論 Spring內核最重要的兩個功能特性,即依賴注入和面向切面。我們將從功能的使用和原理的剖析兩方面來展開討論。通過這一部分的學習,讀者可以在日常使用Spring容器的過程中明確需要考慮的開發技巧,並掌握依賴注入的不同類型對框架使用方式的影響,以及如何正確選擇合適的AOP 代理機制。
3:Web 服務。在這一部分,我們討論Web應用程序開發的最佳實踐,包括使用Spring HATEOAS開發自解釋Web API、使用Spring GraphQL開發查詢式Web API、針對傳統Spring MVC的異步編程模型,以及新型的基於響應式流的WebFlux組件。同時,我們還討論目前非常流行的、Spring 5默認內置的、用來提高網絡通信性能的RSocket協議。通過這一部分的學習,讀者可以系統掌握在使用Spring Boot框架時所應掌握的各個Web開發組件以及對應的使用技巧。
4:內置緩存。在這一部分,我們關注Spring Boot框架的一個高性能功能組件,即緩存。我們討論Spring中內置緩存的使用方法以及它的底層實現原理,並結合Spring Security框架討論緩存機制在用戶認證流程中的作用。通過這一部分的學習,讀者可以掌握 Spring針對緩存的抽象思想、架構設計以及實現過程,同時理解高性能安全性的解決方案。
5:數據訪問。在這一部分,我們關注高效訪問關係型數據的相關實踐。我們系統討論基於JDBC以及ORM框架實現數據訪問的常見開發陷阱及其解決方法,同時,進一步分析如何基於緩存機制來優化數據訪問性能。通過這一部分的學習,讀者可以掌握如何系統性地分析和解決關係型數據訪問過程中的開發問題,並深入理解Spring JDBC、Spring Data JPA等框架。
6:並發編程。在這一部分,我們討論Spring框架的一組並發編程組件,包括任務執行器、任務調度器以及@Async注解,分析這些組件與JDK中的並發編程組件之間的整合過程,並給出源碼級的原理分析。通過這一部分的學習,讀者可以掌握如何將傳統的同步執行模式轉化為異步執行模式,從而提升系統的響應性和並發性。
7:監控和擴展。在這一部分,我們關注如何找到Spring Boot應用程序中的性能問題並進行有效的監控和度量,通過引入Actuator組件並整合自定義的度量指標來實現這一目標。同時,我們還討論Spring Boot的整個生態系統,包括Spring Boot Starter、Spring Boot與微服務、Spring Boot與云原生以及Spring Boot測試方案。通過這一部分的學習,讀者可以掌握常見的系統監控和度量的實現方法,以及基於Spring Boot生態圈進行系統擴展的實現方法。
目次
【第一部分】 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 ProxyFactoryBean 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 WebFlux 119
5.2.1 對比WebMVC和WebFlux架構 119
5.2.2 創建響應式Web API 121
5.2.3 消費響應式Web API 123
5.2.4 Spring WebFlux案例分析 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 初始化用戶認證數
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

