Spring技術內幕:深入解析Spring架構與設計原理

Spring技術內幕:深入解析Spring架構與設計原理

《Spring技術內幕:深入解析Spring架構與設計原理》是2012年02月機械工業出版社出版的圖書。

內容簡介

本書是國內唯一一本系統分析Spring原始碼的著作,也是Spring領域的問鼎之作,由業界擁有10餘年開發經驗的資深Java專家親自執筆,Java開發者社區和Spring開發者社區聯袂推薦。本書第1版不僅在內容上獲得了讀者的廣泛好評,而且在銷量上也摘取了同類書的桂冠,曾經一度掀起Java類圖書的銷售熱潮。第2版不僅繼承了第1版在內容組織和寫作方式上的優點,而且還根據廣大讀者的反饋改進了若干細節上的不足。更為重要的是,結合Spring的最新版本對過時的內容進行了更新,並增加了大量新內容,使本書更趨近於完美。書從原始碼的角度對Spring的核心和各個主要功能模組的架構、設計和實現原理進行了深入剖析。你不僅能從本書中參透Spring框架的優秀架構和設計思想,還能從Spring優雅的實現源碼中一窺Java語言的精髓。本書在開篇之前對Spring的設計理念和整體架構進行了全面的介紹,能讓讀者從巨觀上釐清Spring各個功能模組之間的關係;第一部分詳細分析了Spring的核心:IoC容器和AOP的實現,能幫助讀者了解Spring的運行機制;第二部分深入闡述了各種基於IoC容器和AOP的Java EE組件在Spring中的實現原理;第三部分講述了ACEGI安全框架、DM模組以及Flex模組等基於Spring的典型套用的設計與實現。論你是Java程式設計師、Spring開發者,還是平台開發人員、系統架構師,抑或是對開源軟體原始碼著迷的代碼狂人,都能從本書中受益。

作者簡介

計文柯:資深軟體開發專家和項目經理,擁有10餘年業界經驗,對Spring等開源軟體的套用和實現原理有深入研究和獨到見解。產品研發和項目管理經驗豐富,曾就職於華為、摩托羅拉等知名企業和矽谷移動網際網路創業公司,在軟體工程和項目管理方面積累了大量最佳實踐。現與同伴一起創立並運營深圳雲果科技,專注於雲計算解決方案的研究與實施。

目錄

前言

第1章 Spring的設計理念和整體架構 / 1

1.1 Spring的各個子項目 / 2

1.2 Spring的設計目標 / 5

1.3 Spring的整體架構 / 7

1.4 Spring的套用場景 / 10

1.5 小結 / 12

第一部分 Spring核心實現篇

第2章 Spring Framework的核心:IoC容器的實現 / 16

2.1 Spring IoC容器概述 / 17

2.1.1 IoC容器和依賴反轉模式 / 17

2.1.2 Spring IoC的套用場景 / 18

2.2 IoC容器系列的設計與實現:BeanFactory和ApplicationContext / 19

2.2.1 Spring的IoC容器系列 / 19

2.2.2 Spring IoC容器的設計 / 21

2.3 IC容器的初始化過程 / 28

2.3.1 BeanDefinition的Resource定位 / 29

2.3.2 BeanDefinition的載入和解析 / 37

2.3.3 BeanDefinition在IoC容器中的註冊 / 52

2.4 IoC容器的依賴注入 / 54

2.5 容器其他相關特性的設計與實現 / 75

2.5.1 ApplicationContext和Bean的初始化及銷毀 / 75

2.5.2 lazy-init屬性和預實例化 / 81

2.5.3 FactoryBean的實現 / 82

2.5.4 BeanPostProcessor的實現 / 85

2.5.5 autowiring(自動依賴裝配)的實現 / 88

2.5.6 Bean的依賴檢查 / 90

2.5.7 Bean對IoC容器的感知 / 91

2.6 小結 / 92

第3章 Spring AOP的實現 / 94

3.1 Spring AOP概述 / 95

3.1.1 AOP概念回顧 / 95

3.1.2 Advice通知 / 98

3.1.3 Pointcut切點 / 102

3.1.4 Advisor通知器 / 105

3.2 Spring AOP的設計與實現 / 106

3.2.1 JVM的動態代理特性 / 106

3.2.2 Spring AOP的設計分析 / 108

3.2.3 Spring AOP的套用場景 / 108

3.3 建立AopProxy代理對象 / 109

3.3.1 設計原理 / 109

3.3.2 配置ProxyFactoryBean / 110

3.3.3 ProxyFactoryBean生成AopProxy代理對象 / 111

3.3.4 JDK生成AopProxy代理對象 / 116

3.3.5 CGLIB生成AopProxy代理對象 / 117

3.4 Spring AOP攔截器調用的實現 / 119

3.4.1 設計原理 / 119

3.4.2 JdkDynamicAopProxy的invoke攔截 / 120

3.4.3 Cglib2AopProxy的intercept攔截 / 121

3.4.4 目標對象方法的調用 / 122

3.4.5 AOP攔截器鏈的調用 / 123

3.4.6 配置通知器 / 124

3.4.7 Advice通知的實現 / 129

3.4.8 ProxyFactory實現AOP / 136

3.5 Spring AOP的高級特性 / 138

3.6 小結 / 140

第二部分 Spring組件實現篇

第4章 Spring MVC與Web環境 / 145

4.1 Spring MVC概述 / 146

4.2 Web環境中的Spring MVC / 148

4.3 上下文在Web容器中的啟動 / 149

4.3.1 IoC容器啟動的基本過程 / 149

4.3.2 Web容器中的上下文設計 / 151

4.3.3 ContextLoader的設計與實現 / 154

4.4 Spring MVC的設計與實現 / 158

4.4.1 Spring MVC的套用場景 / 158

4.4.2 Spring MVC設計概覽 / 158

4.4.3 DispatcherServlet的啟動和初始化 / 160

4.4.4 MVC處理HTTP分發請求 / 166

4.5 Spring MVC視圖的呈現 / 178

4.5.1 DispatcherServlet視圖呈現的設計 / 178

4.5.2 JSP視圖的實現 / 182

4.5.3 ExcelView的實現 / 185

4.5.4 PDF視圖的實現 / 187

4.6 小結 / 189

第5章 資料庫操作組件的實現 / 191

5.1 Spring JDBC的設計與實現 / 192

5.1.1 套用場景 / 192

5.1.2 設計概要 / 192

5.2 Spring JDBC中模板類的設計與實現 / 193

5.2.1 設計原理 / 193

5.2.2 JdbcTemplate的基本使用 / 193

5.2.3 JdbcTemplate的execute實現 / 194

5.2.4 JdbcTemplate的query實現 / 196

5.2.5 使用資料庫Connection / 197

5.3 Spring JDBC中RDBMS操作對象的實現 / 199

5.3.1 SqlQuery的實現 / 200

5.3.2 SqlUpdate的實現 / 204

5.3.3 SqlFunction / 206

5.4 Spring ORM的設計與實現 / 208

5.4.1 套用場景 / 208

5.4.2 設計概要 / 208

5.5 Spring驅動Hibernate的設計與實現 / 209

5.5.1 設計原理 / 210

5.5.2 Hibernate的SessionFactory / 210

5.5.3 HibernateTemplate的實現 / 215

5.5.4 Session的管理 / 219

5.6 Spring驅動iBatis的設計與實現 / 222

5.6.1 設計原理 / 222

5.6.2 創建SqlMapClient / 222

5.6.3 SqlMapClientTemplate的實現 / 224

5.7 小結 / 227

第6章 Spring事務處理的實現 / 228

6.1 Spring與事務處理 / 229

6.2 Spring事務處理的設計概覽 / 229

6.3 Spring事務處理的套用場景 / 230

6.4 Spring聲明式事務處理 / 231

6.4.1 設計原理與基本過程 / 231

6.4.2 實現分析 / 231

6.5 Spring事務處理的設計與實現 / 241

6.5.1 Spring事務處理的編程式使用 / 241

6.5.2 事務的創建 / 242

6.5.3 事務的掛起 / 249

6.5.4 事務的提交 / 251

6.5.5 事務的回滾 / 253

6.6 Spring事務處理器的設計與實現 / 255

6.6.1 Spring事務處理的套用場景 / 255

6.6.2 DataSourceTransactionManager的實現 / 256

6.6.3 HibernateTransactionManager的實現 / 259

6.7 小結 / 265

第7章 Spring遠端調用的實現 / 267

7.1 Spring遠端調用的套用場景 / 268

7.2 Spring遠端調用的設計概覽 / 268

7.3 Spring遠端調用的實現 / 271

7.3.1 Spring HTTP調用器的實現 / 271

7.3.2 Spring Hession/Burlap的實現原理 / 282

7.3.3 Spring RMI的實現 / 295

7.4 小結 / 302

第三部分 Spring套用實現篇

第8章 安全框架ACEGI的設計與實現 / 307

8.1 Spring ACEGI安全框架概述 / 308

8.1.1 概述 / 308

8.1.2 設計原理與基本實現過程 / 308

8.1.3 ACEGI的Bean配置 / 309

8.2 配置Spring ACEGI / 310

8.3 ACEGI的Web過濾器實現 / 313

8.4 ACEGI驗證器的實現 / 315

8.4.1 AuthenticationManager的authenticate / 315

8.4.2 DaoAuthenticationProvider的實現 / 318

8.4.3 讀取資料庫用戶信息 / 320

8.4.4 完成用戶信息的對比驗證 / 323

8.5 ACEGI授權器的實現 / 324

8.5.1 與Web環境的接口FilterSecurityInterceptor / 324

8.5.2 授權器的實現 / 327

8.5.3 投票器的實現 / 329

8.6 小結 / 330

第9章 Spring DM模組的設計與實現 / 332

9.1 Spring DM模組的套用場景 / 333

9.2 Spring DM的套用過程 / 334

9.3 Spring DM設計與實現 / 338

9.4 小結 / 348

第10章 Spring Flex的設計與實現 / 350

10.1 Spring Flex模組的套用場景 / 351

10.2 Spring Flex的套用過程 / 353

10.3 Spring Flex的設計與實現 / 355

10.4 小結 / 362

附錄A Spring項目的原始碼環境 / 363

附錄B 構建Spring項目的發布包 / 378

附錄C 使用Spring IDE / 381

附錄D Spring Pet Clinic套用實例 / 385

相關詞條

相關搜尋

熱門詞條

聯絡我們