Spring源碼深度解析

《Spring源碼深度解析》從核心實現和企業套用兩個方面,由淺入深、由易到難地對Spring源碼展開了系統的講解,包括Spring的設計理念和整體架構、容器的基本實現、默認標籤的解析、自定義標籤的解析、bean的載入、容器的功能擴展、AOP、資料庫連線JDBC、整合MyBatis、事務、SpringMVC、遠程服務、Spring訊息服務等內容。 《Spring源碼深度解析》不僅介紹了使用Spring框架開發項目必須掌握的核心概念,還指導讀者如何使用Spring框架編寫企業級套用,並針對在編寫代碼的過程中如何最佳化代碼、如何使得代碼高效給出切實可行的建議,從而幫助讀者全面提升實戰能力。 《Spring源碼深度解析》語言簡潔,示例豐富,可幫助讀者迅速掌握使用Spring進行開發所需的各種技能。《Spring源碼深度解析》適合於已具有一定Java編程基礎的讀者,以及在Java平台下進行各類軟體開發的開發人員、測試人員等。

內容簡介

《Spring源碼深度解析》幫助讀者快速熟悉Spring源碼,以便於對Spring源碼進行擴展或修改,從而滿足業務需求。所有知識點均以HELLOworld級別示例為切入點,描述簡單之後的複雜。對於複雜邏輯的講解採用剝洋蔥似的方式,層層分解複雜度,便於讀者理解和掌握。

圖書目錄

第一部分 核心實現
第1章 Spring整體架構和環境搭建 2
1.1 Spring的整體架構 2
1.2 環境搭建 4
1.2.1 安裝GitHub 4
1.2.2 安裝Gradle 5
1.2.3 下載Spring 6
第2章 容器的基本實現 10
2.1 容器基本用法 10
2.2 功能分析 11
2.3 工程搭建 12
2.4 Spring的結構組成 13
2.4.1 beans包的層級結構 13
2.4.2 核心類介紹 13
2.5 容器的基礎Xml Bean Factory 17
2.5.1 配置檔案封裝 18
2.5.2 載入Bean 21
2.6 獲取XML的驗證模式 24
2.6.1 DTD與XSD區別 24
2.6.2 驗證模式的讀取 26
2.7 獲取Document 28
2.7.1 Entity Resolver用法 29
2.8 解析及註冊Bean Definitions 31
2.8.1 profile屬性的使用 32
2.8.2 解析並註冊Bean Definition 33
第3章 默認標籤的解析 35
3.1 bean標籤的解析及註冊 35
3.1.1 解析Bean Definition 37
3.1.2 Abstract BeanDefinition屬性 55
3.1.3 解析默認標籤中的自定義標籤元素 58
3.1.4 註冊解析的Bean Definition 60
3.1.5 通知監聽器解析及註冊完成 63
3.2 alias標籤的解析 63
3.3 import標籤的解析 65
3.4 嵌入式beans標籤的解析 67
第4章 自定義標籤的解析 68
4.1 自定義標籤使用 69
4.2 自定義標籤解析 71
4.2.1 獲取標籤的命名空間 72
4.2.2 提取自定義標籤處理器 72
4.2.3 標籤解析 74
第5章 bean的載入 78
5.1 FactoryBean的使用 83
5.2 快取中獲取單例bean 85
5.3 從bean的實例中獲取對象 86
5.4 獲取單例 90
5.5 準備創建bean 92
5.5.1 處理ovverride屬性 93
5.5.2 實例化的前置處理 94
5.6 循環依賴 96
5.6.1 什麼是循環依賴 96
5.6.2 Spring如何解決循環依賴 96
5.7 創建bean 100
5.7.1 創建bean的實例 103
5.7.2 記錄創建bean的Object Factory 112
5.7.3 屬性注入 115
5.7.4 初始化bean 124
5.7.5 註冊Disposable Bean 128
第6章 容器的功能擴展 129
6.1 設定配置路徑 130
6.2 擴展功能 130
6.3 環境準備 132
6.4 載入Bean Factory 133
6.4.1 定製Bean Factory 135
6.4.2 載入Bean Definition 136
6.5 功能擴展 137
6.5.1 增加SPEL語言的支持 138
6.5.2 增加屬性註冊編輯器 139
6.5.3 添加Application Context Aware Processor處理器 144
6.5.4 設定忽略依賴 146
6.5.5 註冊依賴 146
6.6 BeanFactory的後處理 146
6.6.1 激活註冊的Bean Factory PostProcessor 147
6.6.2 註冊BeanPost Processor 153
6.6.3 初始化訊息資源 156
6.6.4 初始化Application EventMulticaster 159
6.6.5 註冊監聽器 161
6.7 初始化非延遲載入單例 162
6.8 finishRefresh 165
第7章 AOP 167
7.1 動態AOP使用示例 167
7.2 動態AOP自定義標籤 169
7.2.1 註冊Annotation Aware Aspect JAuto Proxy Creator 170
7.3 創建AOP代理 173
7.3.1 獲取增強器 176
7.3.2 尋找匹配的增強器 186
7.3.3 創建代理 187
7.4 靜態AOP使用示例 201
7.5 創建AOP靜態代理 203
7.5.1 Instrumentation使用 203
7.5.2 自定義標籤 207
7.5.3 織入 209
第二部分 企業套用
第8章 資料庫連線JDBC 214
8.1 Spring連線資料庫程式實現(JDBC) 215
8.2 save/update功能的實現 217
8.2.1 基礎方法execute 219
8.2.2 Update中的回調函式 223
8.3 query功能的實現 225
8.4 queryForObject 229
第9章 整合MyBatis 231
9.1 MyBatis獨立使用 231
9.2 Spring整合MyBatis 235
9.3 源碼分析 237
9.3.1 sqlSession Factory創建 237
9.3.2 Mapper Factory Bean的創建 241
9.3.3 Mapper Scanner Configurer 244
第10章 事務 254
10.1 JDBC方式下的事務使用示例 254
10.2 事務自定義標籤 257
10.2.1 註冊Infrastructure Advisor Auto Proxy Creator 257
10.2.2 獲取對應class/method的增強器 261
10.3 事務增強器 269
10.3.1 創建事務 271
10.3.2 回滾處理 281
10.3.3 事務提交 287
第11章 SpringMVC 291
11.1 SpringMVC快速體驗 291
11.2 Context Loader Listener 295
11.2.1 Servlet Context Listener的使用 295
11.2.2 Spring中的Context Loader Listener 296
11.3 Dispatcher Servlet 300
11.3.1 servlet的使用 301
11.3.2 Dispatcher Servlet的初始化 302
11.3.3 WebApplication Context的初始化 304
11.4 Dispatcher Servlet的邏輯處理 320
11.4.1 Multipart Content類型的request處理 326
11.4.2 根據request信息尋找對應的Handler 327
11.4.3 沒找到對應的Handler的錯誤處理 331
11.4.4 根據當前Handler尋找對應的Handler Adapter 331
11.4.5 快取處理 332
11.4.6 Handler Interceptor的處理 333
11.4.7 邏輯處理 334
11.4.8 異常視圖的處理 334
11.4.9 根據視圖跳轉頁面 335
第12章 遠程服務 340
12.1 RMI 340
12.1.1 使用示例 340
12.1.2 服務端實現 342
12.1.3 客戶端實現 350
12.2 HttpInvoker 355
12.2.1 使用示例 356
12.2.2 服務端實現 357
12.2.3 客戶端實現 361
第13章 Spring訊息 367
13.1 JMS的獨立使用 367
13.2 Spring整合ActiveMQ 369
13.3 源碼分析 371
13.3.1 JmsTemplate 372
13.3.2 監聽器容器 376

相關詞條

熱門詞條

聯絡我們