網際網路輕量級SSM框架解密:Spring,Spring MVC,MyBatis源碼深度剖析

書籍信息

作譯者:李艷鵬 等

出版時間:2019-01千 字 數:740版次:01-01頁 數:528

開本:16開裝幀:I S B N :9787121359545

換版:

紙質書定價:¥109.0

內容簡介

本書Spring源碼剖析篇基於Spring 4.3.2版本,剖析了Spring上下文、Spring AOP和Spring事務的實現,並通過實例展示了框架陷阱的隱蔽性及學習框架原理的必要性。 Spring MVC源碼剖析篇基於Spring MVC 3.0版本,這個版本比較簡單、核心清晰,便於讀者理解透徹,這裡主要講解其中的設計模式及可插拔的設計思路。MyBatis源碼剖析篇基於MyBatis 3.4版本,幫助讀者對SQL語言、JDBC及數據訪問方式有更深入的了解,也能看到工廠、Builder、代理、裝飾者等設計模式在MyBatis中的大量套用。本書對於網際網路從業者,或者傳統行業的IT工程師、架構師、技術經理、技術總監,以及想深耕IT行業的技術人員都有很強的借鑑性和實用價值。

圖書目錄

第1篇 深入剖析Spring源碼

第1章 Spring基礎介紹 2

1.1 Spring的核心結構 2

1.2 Spring的領域模型 6

第2章 Spring上下文和容器 7

2.1 Spring上下文的設計 7

2.2 Spring容器BeanFactory的設計 11

2.3 Spring父子上下文與容器 13

第3章 Spring載入機制的設計與實現 18

3.1 Spring ApplicationContext的載入及源碼實現 18

3.2 Spring XML檔案標籤載入解析及自定義 27

3.3 Spring註解的載入及自動注入 31

第4章 Spring Bean探秘 45

4.1 Spring Bean的定義和註冊設計 45

4.2 Spring Bean的定義模型 47

4.3 Spring Bean的運行(獲取、創建)實現 48

4.4 Spring Bean的依賴注入的實現 59

4.5 Spring Bean的初始化 70

第5章 Spring代理與AOP 74

5.1 Spring代理的設計及JDK、CGLIB動態代理 75

5.2 Spring AOP的設計 82

5.3 Spring AOP的載入和執行機制 83

5.3.1 Spring AOP的載入及源碼解析 83

5.3.2 Spring AOP的創建執行及源碼解析 88

5.4 Spring事務管理設計及源碼 101

5.5 Spring事務傳播機制 115

第6章 Spring實戰 118

6.1 對Spring重複AOP問題的分析 118

6.2 Spring Bean循環依賴的問題 125

第2篇 深入剖析Spring MVC源碼

第7章 MVC簡介 138

7.1 MVC的體系結構和工作原理 138

7.1.1 控制器 139

7.1.2 視圖 139

7.1.3 模型 140

7.2 Web MVC的體系結構和工作原理 140

第8章 Spring Web MVC工作流 142

8.1 組件及其接口 142

8.1.1 DispatcherServlet 143

8.1.2 處理器映射 143

8.1.3 處理器適配器 144

8.1.4 處理器與控制器 145

8.1.5 視圖解析器 145

8.1.6 視圖 146

8.2 組件間的協調通信 146

第9章 DispatcherServlet的實現 148

9.1 深入剖析GenericServlet和HttpServlet 150

9.1.1 HTTP和Servlet規範簡介 150

9.1.2 Servlet和GenericServlet詳解 152

9.1.3 HttpServlet詳解 152

9.2 深入剖析DispatcherServlet 159

9.2.1 HttpServletBean詳解 161

9.2.2 FrameworkServlet詳解 162

9.2.3 DispatchServlet詳解 166

9.3 根共享環境的載入 182

9.3.1 基於Servlet環境監聽器的實現結構 182

9.3.2 多級Spring環境的載入方式 189

第10章 基於簡單控制器的流程實現 194

10.1 通過Bean名稱URL處理器映射獲取處理器執行鏈 194

10.1.1 抽象處理器映射 196

10.1.2 抽象URL處理器映射 199

10.1.3 抽象探測URL處理器映射 209

10.1.4 Bean名稱URL處理器映射 210

10.2 通過處理器適配器把請求轉接給處理器 211

10.2.1 簡單控制處理適配器的設計 211

10.2.2 表單控制器處理HTTP請求的流程 212

10.3 對控制器類體系結構的深入剖析 214

10.3.1 Web內容產生器 215

10.3.2 抽象控制器類 217

10.3.3 基本命令控制器 218

10.3.4 抽象表單控制器 222

10.3.5 簡單表單控制器 229

第11章 基於註解控制器的流程實現 230

11.1 默認註解處理器映射的實現 230

11.2 註解處理器適配器的架構設計 237

11.3 深入剖析註解控制器的處理流程 238

11.3.1 解析處理器方法 241

11.3.2 解析處理器方法的參數 253

11.3.3 綁定、初始化領域模型和管理領域模型 272

11.3.4 調用處理器方法 278

11.3.5 處理方法返回值和隱式模型到模型或視圖的映射 281

11.3.6 如何更新模型數據 286

第12章 基於HTTP請求處理器實現RPC 288

12.1 深入剖析RPC客戶端的實現 289

12.2 深入剖析RPC服務端的實現 299

第13章 深入剖析處理器映射、處理器適配器及處理器的實現 311

13.1 處理器映射的實現架構 311

13.1.1 處理器映射實現類 312

13.1.2 處理器映射抽象類 313

13.1.3 對處理器映射類的代碼剖析 315

13.2 處理器適配器的實現架構 322

13.3 深入剖析處理器 325

13.3.1 簡單控制器 325

13.3.2 註解控制器 339

13.3.3 HTTP請求處理器 342

13.4 攔截器的實現架構 344

第14章 視圖解析和視圖顯示 353

14.1 基於URL的視圖解析器和視圖 353

14.1.1 內部資源視圖解析器和內部資源視圖 365

14.1.2 瓦塊視圖解析器和瓦塊視圖 371

14.1.3 模板視圖解析器和模板視圖 373

14.1.4 XSLT視圖解析器和XSLT視圖 377

14.2 更多的視圖解析器 378

14.2.1 Bean名稱視圖解析器 378

14.2.2 內容選擇視圖解析器 379

14.2.3 資源綁定視圖解析器 383

14.2.4 XML視圖解析器 385

第3篇 深入剖析MyBatis源碼

第15章 MyBatis介紹 388

15.1 MyBatis的歷史 388

15.2 MyBatis子項目 389

15.3 MyBatis的自身定位 389

15.3.1 JPA持久化框架 390

15.3.2 MyBatis的功能 390

15.3.3 MyBatis與JPA的異同 390

15.4 MyBatis的架構 391

15.4.1 模組 391

15.4.2 MyBatis的項目包 392

第16章 構建階段 394

16.1 關鍵類 394

16.2 關鍵時序 395

16.3 構建的入口:SqlSessionFactoryBuilder和SqlSessionFactory 396

16.4 配置(Configuration)和配置構造器(XmlConfigBuilder) 397

16.4.1 XmlConfigBuilder的初始化 397

16.4.2 完整的mybatis-3-config.dtd 399

16.4.3 解析配置檔案構建Configuration配置 399

16.5 SQL簡介 418

16.6 SQL映射的構建 419

16.6.1 通過XML定義的SQL Mapper 419

16.6.2 Configuration類中與SQL Mapping相關的類 420

16.6.3 XmlMapperBuilder是如何工作的 421

16.6.4 映射註解器定義的SQL Mapper 438

16.6.5 小結 440

第17章 執行階段 441

17.1 關鍵類 441

17.2 關鍵接口及默認實現初始化 442

17.2.1 SqlSession及其關聯類的構建過程 442

17.2.2 StatementHandler語句處理器 446

17.3 DQL語句是如何執行的 448

17.3.1 查詢接口 448

17.3.2 關鍵時序 449

17.3.3 程式執行查詢的入口:DefaultSqlSession#selectList(statement) 450

17.3.4 生成執行語句:getMappedStatement() 450

17.3.5 執行器查詢:Executor#query() 451

17.3.6 JDBC執行語句:SimpleStatementHandler#query() 455

17.3.7 結果集處理:DefaultResultSetHandler#handlerResultSets() 455

17.4 DML語句是如何執行的 460

17.4.1 操作接口 460

17.4.2 關鍵時序 460

17.4.3 程式執行更新的入口:DefaultSqlSession#update() 461

17.4.4 執行器執行方法:Executor#update() 461

17.4.5 SQL語句執行:SimpleStatementHandler#update() 464

17.4.6 結果集主鍵邏輯:Jdbc3KeyGenerator#processAfter() 464

17.5 小結 466

相關詞條

熱門詞條

聯絡我們