因特網輕量級 SSM 框架解密:Spring、Spring MVC、MyBatis 源碼深度剖析

李艷鵬 等

  • 出版商: 電子工業
  • 出版日期: 2019-01-31
  • 定價: $654
  • 售價: 7.5$491
  • 語言: 簡體中文
  • 頁數: 528
  • ISBN: 7121359545
  • ISBN-13: 9787121359545
  • 相關分類: Java 相關技術
  • 立即出貨

買這商品的人也買了...

商品描述

SSM是Spring、Spring MVC和MyBatis框架的組合,是目前Java領域使用非常廣泛也非常穩定的開源Web框架。

本書以SSM的核心代碼剖析為基礎,突破Java Web研發瓶頸的束縛,選取Spring、Spring MVC和MyBatis框架中易於理解的版本,深入剖析了其中各個模塊的實現,從代碼中挖掘常用的設計模式,為讀者理解Spring系列框架的可擴展設計藝術提供了方法論和優秀實踐。

本書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
第18章  專題特性解析    467
18.1  動態SQL支持    467
18.1.1  XmlScriptBuilder解析配置    467
18.1.2  NodeHandler構建SqlNode樹    468
18.1.3  SqlNode處理SQL語句    471
18.2  MyBatis的緩存支持    477
18.2.1  本地緩存    478
18.2.2  二級緩存    482
18.3  結果集支持:Object、List、Map和Cursor    491
18.4  自定義擴展點及接口    496
第19章  作為中間件如何承上啟下    498
19.1  MyBatis與底層的JDBC    498
19.1.1  java.sql.DataSource    498
19.1.2  java.sql.Connection    499
19.1.3  java.sql.Statement    500
19.1.4  java.sql.Resultset    502
19.2  MyBatis的主流集成方式    502
19.2.1  mybatis-spring簡介    502
19.2.2  Spring對JDBC的支持    502
19.2.3  mybatis-spring與Spring    504

最後瀏覽商品 (20)