《Spring Internals》,Spring 技術內幕,深入解析Spring架構與設計原理,計文柯著,機械工業出版社,2011年1月出版。
這是一本講解 Spring 3.0 源碼的書,作爲Java生態中這個最基礎的框架,其框架設計,對底層技術的應用,對其他技術的整合,都必然有讓我們學習的地方;當然也肯定有繁雜之處,或者有過度設計的地方;如果有興趣,有時間,可以集合源碼看看這本書,對於加深對於Spring的理解,還是很有好處的。
曾經花1周的時間,結合Spring源碼,大致翻了一下這本書的第一部分,Spring核心實現篇(IoC和AOP),也迸出了一個想法:一切Java生態的開源框架,都是JDK、數據結構、設計模式和算法。
另外一本偏向實戰的書:http://blog.csdn.net/puma_dong/article/details/47917461
第1章 準備源代碼環境
1.1 安裝 JDK
1.2 安裝 Eclipse
1.3 安裝輔助工具
1.4 獲取 Spring 源代碼
1.5 Spring 源代碼的組織結構
1.6 小結
第一部分 Spring 核心實現篇
第2章 Spring Framework 的核心:IoC容器的實現
2.1 Spring IoC 容器概述
IoC 容器和依賴反轉模式
Spring 的 IoC 容器系列
2.2 IoC容器系列的實現:BeanFactory和ApplicationContext
BeanFactory 對 IoC 容器的功能定義
IoC 容器 XmlBeanFactory 的工作原理
ApplicationContext 的特點
2.3 IoC 容器的初始化
BeanDefinition 的 Resource 定位
BeanDefinition 的載入和解析
BeanDefinition 在 IoC 容器中的註冊
2.4 IoC 容器的依賴注入
2.5 容器其他相關特性的實現
lazy-init 屬性和預實例化
FactoryBean 的實現
BeanPostProcessor 的實現
autowiring 的實現原理
2.6 小結
第3章 Spring AOP 的實現
3.1 Spring AOP 概述
AOP 概念回顧
Advice 通知
Pointcut 切點
Advisor 通知器
3.2 建立 AopProxy 代理對象
配置 ProxyFactoryBean
ProxyFactoryBean 生成 AopProxy
JDK 生成 AopProxy 代理對象
CGLIB 生成 AopProxy 代理對象
3.3 Spring AOP 攔截器調用的實現
JdkDynamicAopProxy 的 invoke 攔截
Cglib2AopProxy 的 intercept 攔截
目標對象方法的調用
AOP 攔截器鏈的調用
配置通知器
Advice 通知的實現
ProxyFactory 實現 AOP
3.4 Spring AOP 的高級特性
3.5 小結
第二部分 Spring 組件實現篇
第4章 Spring MVC 與 Web 環境
4.1 概述
4.2 Web 環境中的 Spring MVC
4.3 IoC 容器在 Spring MVC 中的啓動
Web 容器中的上下文
ContextLoader 建立 Web 環境的根上下文
4.4 Spring Web MVC 的啓動
DispatcherServlet 概述
DispatcherServlet 的啓動和初始化
4.5 Spring MVC 的實現
DispatcherServlet 的 MVC 初始化
HandlerMapping 的配置
使用 HandlerMapping 完成請求的映射處理
Spring MVC 對 HTTP 請求的分發處理
4.6 Spring MVC 視圖的呈現
DispatcherServlet 視圖呈現概述
JSP 視圖的實現
ExcelView的實現
PDF 視圖的實現
4.7 小結
第5章 數據庫操作組件的實現
5.1 Spring JDBC 和 Spring ORM 概述
5.2 Spring JDBC 模板類的實現
JdbcTemplate 的基本使用
JdbcTemplate 的 execute 實現
JdbcTemplate 的 query 實現
使用數據庫 Connection
5.3 Spring JDBC 中 RDBMS 操作對象的實現
SqlQuery 的實現
SqlUpdate 的實現
SqlFunction 的實現
5.4 Spring 驅動 Hibernate 的實現
配置 Hibernate 的SessionFactory
HibernateTemplate 的實現
Session 的管理
5.5 Spring 驅動 iBatis 的實現
創建 SqlMapClient
SqlMapClientTemplate 的實現
5.6 小結
第6章 Spring 事務處理的實現
6.1 Spring 與事務處理
6.2 聲明式事務處理的基本過程
事務處理攔截器的配置
事務處理配置的讀入
6.3 事務處理攔截器的實現
6.4 事務處理的實現
事務處理的編程式使用
事務的創建
事務的掛起
事務的提交
事務的回滾
6.5 具體事務處理器的實現
DataSourceTransactionManager 的實現
HibernateTransactionManaber 的實現
6.6 小結
第7章 Spring 遠端調用的實現
7.1 Spring 遠端調用概述
7.2 Spring HTTP 調用器的實現原理
配置 HTTP 調用器客戶端
HTTP 調用器客戶端的實現
配置 HTTP 調用器遠端服務器端
HTTP 調用器服務器端的實現
7.3 Spring Hession/Burlap 的實現原理
Hession/Burlap 客戶端的配置
Hession 客戶端的實現
Burlap 客戶端的實現
Hession/Burlap 服務器端的配置
Hession 服務器端的實現
Burlap 服務器端的實現
7.4 Spring RMI 的實現
Spring RMI 客戶端的配置
Spring RMI 客戶端的實現
Spring RMI 服務器端的配置
Spring RMI 服務器端的實現
7.5 小結
第8章 安全框架 ACEGI 的實現
8.1 Spring ACEGI 安全框架概述
概述
使用 Spring IDE
ACEGI 的 Bean 配置
8.2 配置 Spring ACEGI
8.3 ACEGI 的 Web 過濾器實現
8.4 ACEGI 驗證器的實現
AuthenticationManager 的authenticate
DaoAuthenticationProvider 的實現
讀取數據庫用戶信息
完成用戶信息的對比驗證
8.5 ACEGI 授權器的實現
與 Web 環境的接口 FilterSecurityInterceptor
授權器的實現
投票器的實現
8.6 小結
第三部分 Spring 應用篇
第9章 Spring petclinic 應用實例
9.1 petclinic 概述
9.2 部署環境及數據庫
9.3 petclinic 的 Bean 配置
9.4 petclinic 的 Web 頁面實現
9.5 petclinic 的領域對象實現
9.6 petclinic 數據庫操作的實現
使用 JDBC 的數據庫操作
使用 Hibernate 的數據庫操作
使用 JPA 的數據庫操作
9.7 小結