及時獲取有趣有料的技術文章
經過幾年的發展,Spring Boot幾乎已成為Java企業級開發的標準框架,它為開發人員提供了極其方便的項目框架搭建、軟體集成功能,極大地提升了開發人員的工作效率,減少了企業的運營成本。而Spring Boot又極其簡單易用,一個新手按照官方文檔的指導在十幾分鐘內就能創建一個可運行的Spring Boot項目。
Spring Boot為開發人員提供了方便,但一些開發人員並不了解Spring Boot為什麼可以帶來方便的底層邏輯,也沒有嘗試借鑑Spring Boot的這種創新。這不僅會導致他們在使用Spring Boot的過程中不能深層次發揮它的優勢,還會導致在大範圍應用Spring Boot之後出現各種問題卻找不到解決辦法的情況,更別說借鑑Spring Boot的創新了。
今天為大家介紹一本新書《Spring boot技術內幕:架構設計與實現原理》
本書特色
本書有別於市面上其他Spring Boot入門和實戰類的相關書,更多側重於Spring Boot設計思想、原理及具體功能實現的原始碼分析,從一個更深的層次帶領讀者了解Spring Boot。書中內容涵蓋範圍較廣,卻又不顯冗餘,每一個知識點都通過典型的功能實現來進行分析。
本書內容基於Spring Boot 2.2.1,書中涵蓋的許多知識點都是作者多年經驗的總結,希望能給讀者帶來全新的知識盛宴。
內容簡介
這是一本從源碼角度分析Spring Boot底層原理和實現方式,以求幫助讀者掌握Spring Boot多場景聯合運用、項目性能調優的實踐指導書。本書以新版本的Spring Boot 2.x的源碼為基礎進行分析,不僅提煉出了Spring Boot源碼的核心思想,還從多個維度對Spring Boot框架中的數十個主流功能模塊進行了源碼級的分析,更為難能可貴的是,書中還對Spring Boot外置輔助工具進行了源碼級的分析。此外,為了指導讀者實踐應用,本書除了在各章相關部分給出實踐方法外,還以用獨立章節以實際案例的形式進行專門指導。
本書從邏輯上可分為4個部分:
第一部分:準備部分,包括第1章,這部分主要介紹進行SpringBoot解析需要做的準備工作,包括源碼的獲取與調試、源碼閱讀工具等,同時還給出了需要在思想層面做的準備——整體了解源碼目錄結構和SpringBoot設計思想。
第二部分:原理部分,包含第2~4章內容,著重講解SpringBoot實現的原理及基本流程,這是SpringBoot的核心之一,也是後面章節的基礎。
第三部分:內置組件部分,包含第5~12章,著重講解SpringBoot內置集成框架的實現原理、原始碼分析及實戰分析,其中包括對外化配置、web應用、內置servlet容器、資料庫、消息源、緩存、日誌進行的源碼級的分析和實踐運用指導。
第四部分:外置組件部分,包含第13~16章,著重講解實際項目實施過程中肯定會用到的單元測試、打包、部署、監控等相關外置輔助工具,這部分不僅介紹了相關工具的集成方法,還從源碼角度進行了詳細解析。
讀者對象
Spring Boot的使用者和愛好者。Spring系列框架的使用者和愛好者。對源碼感興趣,希望學習源碼解析相關方法的技術人員。開設Spring Boot相關課程的院校師生。
目錄
★第一部分 準備篇
●第1章 閱讀代碼前的準備 2
1.1 獲取和調試Spring Boot原始碼 2
1.2Spring Boot原始碼的目錄結構 3
1.3 原始碼閱讀工具 5
1.4Spring Boot的設計理念和目標 6
1.5Spring Boot的整體架構 7
★第二部分 原理篇
●第2章 Spring Boot核心運行原理 10
2.1 核心運行原理 10
2.2 運作原理源碼解析之@EnableAuto-Configuration 11
2.3AutoConf?igurationImportSelector源碼解析 15
2.4@Conditional條件註解 33
2.5 實例解析 39
2.6 小結 41
●第3章 Spring Boot構造流程源碼分析 42
3.1SpringApplication的初始化簡介 42
3.2SpringApplication實例化流程 43
3.3SpringApplication構造方法參數 44
3.4Web應用類型推斷 45
3.5ApplicationContextInitializer加載 47
3.6ApplicationListener加載 50
3.7 入口類推斷 51
3.8SpringApplication的定製化配置 52
3.9 小結 54
●第4章 Spring Boot運行流程源碼分析 55
4.1run方法核心流程 55
4.2SpringApplicationRunListener監聽器 57
4.3 初始化ApplicationArguments 63
4.4 初始化Conf?igurableEnvironment 63
4.5 忽略信息配置 68
4.6 列印Banner 68
4.7Spring應用上下文的創建 69
4.8Spring應用上下文的準備 70
4.9Spring應用上下文的刷新 75
4.10 調用ApplicationRunner和CommandLineRunner 77
4.11 小結 78
★第三部分 內置組件篇
●第5章 Spring Boot外化配置源碼解析 80
5.1 外化配置簡介 80
5.2ApplicationArguments 參數處理 81
5.3 命令參數的獲取 86
5.4 配置文件的加載 88
5.5 基於Prof?ile的處理實現 93
5.6 綜合實戰 97
5.7 小結 102
●第6章 Spring Boot Web應用源碼解析 103
6.1 遺失的web.xml 103
6.2Web應用的自動配置 104
6.3Spring MVC的自動配置 111
6.4 綜合實戰 117
6.5 小結 120
●第7章 Spring Boot 內置Servlet容器源碼解析 121
7.1Web容器自動配置 121
7.2WebServer初始化過程 128
7.3DispatcherServlet的加載過程 134
7.4 綜合實戰 140
7.5 小結 141
●第8章 Spring Boot 資料庫配置源碼解析 142
8.1 自動配置註解解析 142
8.2 自動配置內部實現解析 150
8.3JdbcTemplateAutoConfiguration 157
8.4 異常案例分析 159
8.5 小結 159
●第9章 Spring Boot 消息源碼解析 160
9.1JMS基礎自動配置 160
9.2ActiveMQ自動配置 166
9.3@JmsListener註解解析 173
9.4 小結 175
●第10章 Spring Boot Cache源碼解析 176
10.1Cache簡介 176
10.2Cache自動配置 177
10.3 默認Cache配置 183
10.4 小結 188
●第11章 Spring Boot 日誌源碼解析 189
11.1LoggingApplicationListener的觸發 189
11.2LoggingApplicationListener的執行 191
11.3 小結 203
●第12章 實戰:創建Spring Boot自動配置項目 204
12.1 自定義Spring Boot Starter項目 204
12.2Starter測試使用 207
12.3 小結 208
★第四部分 外置組件篇
●第13章 Spring Boot單元測試 210
13.1Spring Boot對單元測試的支持 210
13.2 常用單元測試註解 211
13.3JUnit5單元測試示例 212
13.4Web應用單元測試 214
13.5MockMvc的自動配置 217
13.6 小結 221
●第14章 Spring Boot打包部署解析 222
14.1Spring Boot的jar包 222
14.2Launcher實現原理 227
14.3 小結 234
●第15章 Spring Boot 應用監控解析 235
15.1Actuator簡介 235
15.2Actuator自動配置 237
15.3Actuator端點展示 244
15.4 小結 247
●第16章 Spring Boot Security支持 248
16.1Security自動配置 248
16.2SecurityAutoConfiguration詳解 249
16.3SecurityFilterAutoConfiguration詳解 255
16.4 小結 257
上下滑動查看
一個技術人珍藏的武學【秘籍】