內容簡介
本書分成三大部分並附有兩個附錄,每一部分分別對應Spring框架的一個領域:核心框架、業務和數據層、表示層。每一部分既是建立在前一部分的基礎上,同時也可以獨立存在。因此,讀者不必從頭開始,完全可以直接深入到某個主題。書中第一部分展示了Spring框架的兩個核心特性:依賴注入和面向切面編程。第二部分以第一部分介紹的DI和AOP特性為基礎,敘述了如何將這兩個概念套用到應用程式的數據和業務層中。第三部分介紹了Spring構建Web應用程式的各種方式。
本書循序漸進地指導讀者瀏覽貫穿本書的複雜示例。Spring最突出之處在於它使企業級系統開發變得簡單,所以,企業級系統開發人員會更加欣賞本書中的示例代碼。本書最後4章描述了Spring是如何為Web層開發提供支持的,如果你是一位Web開發人員,你會發現本書的最後一部分特別有用。
作品目錄
第一部分 Spring的核心
第1章 開始Spring之旅
1.1 Spring是什麼
1.2 開始Spring之旅
1.3 理解依賴注入
1.3.1 依賴注入
1.3.2 DI套用
1.3.3 企業級套用中的依賴注入
1.4 套用AOP
1.4.1 AOP介紹
1.4.2 AOP使用
1.5 小結
第2章 基本Bean裝配
2.1 容納你的Bean
2.1.1 BeanFactory介紹
2.1.2 使用套用上下文
2.1.3 Bean的生命
2.2 創建Bean
2.2.1 聲明一個簡單的Bean
2.2.2 通過構造函式注入
2.3 注入Bean屬性
2.3.1 注入簡單的數值
2.3.2 使用其他的Bean
2.3.3 裝配集合
2.3.4 裝配空值
2.4 自動裝配
2.4.1 四種自動裝配類型
2.4.2 混合使用自動和手動裝配
2.4.3 何時採用自動裝配
2.5 控制Bean創建
2.5.1 Bean範圍化
2.5.2 利用工廠方法來創建Bean
2.5.3 初始化和銷毀Bean
2.6 小結
第3章 高級Bean裝配
3.1 聲明父Bean和子Bean
3.1.1 抽象基Bean類型
3.1.2 抽象共同屬性
3.2 方法注入
3.2.1 基本的方法替換
3.2.2 獲取器注入
3.3 注入非Spring Bean
3.4 註冊自定義屬性編輯器
3.5 使用Spring的特殊Bean
3.5.1 後處理Bean
3.5.2 Bean工廠的後處理
3.5.3 配置屬性的外在化
3.5.4 提取文本訊息
3.5.5 程式事件的解耦
3.5.6 讓Bean了解容器
3.6 腳本化的Bean
3.6.1 給椰子上Lime
3.6.2 腳本化Bean
3.6.3 注入腳本化Bean的屬性
3.6.4 刷新腳本化Bean
3.6.5 編寫內嵌的腳本化Bean
3.7 小結
第4章 通知Bean
4.1 AOP簡介
4.1.1 定義AOP術語
4.1.2 Spring對AOP的支持
4.2 創建典型的Spring切面
4.2.1 創建通知
4.2.2 定義切點和通知者
4.2.3 使用ProxyFactoryBean
4.3 自動代理
4.3.1 為Spring切面創建自動代理
4.3.2 自動代理@AspectJ切面
4.4 定義純粹的POJO切面
4.5 注入AspectJ切面
4.6 小結
第二部分 企業Spring
第5章 使用資料庫
5.1 Spring的數據訪問哲學
5.1.1 了解Spring數據訪問的異常體系
5.1.2 數據訪問的模板化
5.1.3 使用DAO支持類
5.2 配置數據源
5.2.1 使用JNDI數據源
5.2.2 使用數據源連線池
5.2.3 基於JDBC驅動的數據源
5.3 在Spring里使用JDBC
5.3.1 處理失控的JDBC代碼
5.3.2 使用JDBC模板
5.3.3 使用Spring對JDBC的DAO支持類
5.4 在Spring里集成Hibernate
5.4.1 選擇Hibernate的版本
5.4.2 使用Hibernate模板
5.4.3 建立基於Hibernate的DAO
5.4.4 使用Hibernate 3上下文會話
5.5 Spring和Java持久API
5.5.1 使用JPA模板
5.5.2 創建一個實體管理器工廠
5.5.3 建立使用JPA的DAO
5.6 Spring和iBATIS
5.6.1 配置iBATIS客戶模板
5.6.2 建立基於iBATIS的DAO
5.7 快取
5.7.1 配置快取方案
5.7.2 快取的代理Bean
5.7.3 註解驅動的快取
5.8 小結
第6章 事務管理
6.1 理解事務
6.1.1 僅用4個詞解釋事務
6.1.2 理解Spring對事務管理的支持
6.2 選擇事務管理器
6.2.1 JDBC事務
6.2.2 Hibernate事務
6.2.3 JPA事務
6.2.4 JDO事務
6.2.5 JTA事務
6.3 在Spring中編寫事務
6.4 聲明式事務
6.4.1 定義事務參數
6.4.2 代理事務
6.4.3 在Spring 2.0里聲明事務
6.4.4 定義注釋驅動事務
6.5 小結
第7章 保護Spring
7.1 Spring Security介紹
7.2 驗證用戶身份
7.2.1 配置Provider Manager
7.2.2 根據資料庫驗證身份
7.2.3 根據LDAP倉庫進行身份驗證
7.3 控制訪問
7.3.1 訪問決策投票
7.3.2 決定如何投票
7.3.3 處理投票棄權
7.4 保護Web應用程式
7.4.1 代理Spring Security的過濾器
7.4.2 處理安全上下文
7.4.3 提示用戶登錄
7.4.4 處理安全例外
7.4.5 強制Web安全性
7.4.6 確保一個安全的通道
7.5 視圖層安全
7.5.1 有條件地渲染內容
7.5.2 顯示用戶身份驗證信息
7.6 保護方法調用
7.6.1 創建一個安全切面
7.6.2 使用元數據保護方法
7.7 小結
第8章 Spring和基於POJO的遠程服務
第9章 在Spring中建立契約優先Web服務
第10章 Spring訊息
10.1 JMS簡介
10.1.1 構建JMS
10.1.2 介紹JMS的優點
10.1.3 在Spring中安裝ActiveMQ
10.2 協同使用JMS和Spring
10.2.1 處理冗長失控的JMS代碼
10.2.2 使用JMS模板
10.2.3 轉換訊息
10.2.4 將Spring的網關支持類套用於JMS
10.3 創建訊息驅動POJO
10.3.1 創建訊息監聽器
10.3.2 編寫純POJO MDP
10.4 使用基於訊息的RPC
10.4.1 引入Lingo
10.4.2 輸出服務
10.4.3 代理JMS
10.5 小結
第11章 Spring和EJB
11.1 在Spring中置入EJB
11.1.1 代理會話Bean(EJB 2.x)
11.1.2 將EJB置入Spring Bean
11.2 開發Spring驅動的EJB(EJB 2.x)
11.3 Spring和EJB3
11.3.1 引入Pitchfork
11.3.2 從Pitchfork起步
11.3.3 通過注釋注入資源
11.3.4 使用注釋聲明攔截器
11.4 小結
第12章 訪問企業服務
12.1 從JNDI中獲取對象
12.1.1 使用傳統的JNDI
12.1.2 注入JNDI對象
12.1.3 在Spring 2中注入JNDI對象
12.2 傳送電子郵件
12.2.1 配置郵件傳送器
12.2.2 構建電子郵件
12.3 調度任務
12.3.1 使用Java Timer調度任務
12.3.2 使用Quartz調度器
12.3.3 按調度計畫調用方法
12.4 使用JMX管理Spring Bean
12.4.1 將Spring Bean輸出為MBean
12.4.2 遠程訪問MBean
12.4.3 處理通知
12.5 小結
第三部分 Spring客戶端
第13章 處理Web請求
13.1 開始Spring MVC之旅
13.1.1 請求生命中的一天
13.1.2 配置DispatcherServlet
13.1.3 Spring MVC概述
13.2 將請求映射到控制器
13.2.1 使用SimpleUrlHandler Mapping
13.2.2 使用ControllerClassName HandlerMapping
13.2.3 使用元數據映射控制器
13.2.4 使用多映射處理器
13.3 用控制器處理請求
13.3.1 處理命令
13.3.2 處理表單提交
13.3.3 用嚮導處理複雜表單
13.3.4 使用一次性控制器
13.4 處理異常
13.5 小結
第14章 渲染Web視圖
14.1 視圖解析
14.1.1 使用模板視圖
14.1.2 解析視圖Bean
14.1.3 選擇視圖解析器
14.2 使用Spring模板
14.2.1 綁定表單數據
14.2.2 渲染被存儲在外部的文本
14.2.3 顯示錯誤
14.3 使用Tile設計頁面布局
14.3.1 Tile視圖
14.3.2 Tile控制器
14.4 使用JSP的替代技術
14.4.1 使用Velocity模板
14.4.2 使用FreeMarker
14.5 產生非HTML輸出
14.5.1 產生Excel工作表
14.5.2 產生PDF文檔
14.5.3 開發自定義視圖
14.6 小結
第15章 使用Spring Web Flow
第16章 集成其他Web框架附錄A 裝配Spring
A.1 下載Spring
A.1.1 研究Spring發布
A.1.2 構建自己的類路徑
A.2 把Spring添加為一個Maven 2依賴項
A.3 Spring與Ant
A.4 Spring與Log4j
附錄B 用(和不用)Spring進行測試
B.1 測試簡介
B.1.1 理解不同類型的測試
B.1.2 使用JUnit
B.1.3 Spring在測試中的角色
B.2 單元測試Spring MVC控制器
B.2.1 模擬對象
B.2.2 斷言ModelAndView的內容
B.3 使用Spring進行綜合測試
B.3.1 測試裝配後的對象
B.3.2 綜合測試事務處理對象
B.3.3 測試資料庫
B.3.4 使用Gienah Testing在JUnit 4中進行測試
B.4 小結
編輯推薦
“真是一本好書……極度推薦。”
——Javalobby
“……這本書的確是一本易讀、易懂又實在有用的Spring嚮導書。如果你認為自己在Spring方面還有全方位學習的需要,那么它應該有足夠的理由在你的書架上占據一席之地。”
——熊節,ThoughtWorks諮詢師
本書是暢銷書《SpringinAction》的第二版。在上一版的基礎上,本版擴展了很多內容,並涵蓋TSpring的許多新特性。
Spring是一種輕型容器式框架,能夠利用簡單的Java對象創建企業級組件。通過使用依賴注入和AOP,Spring能夠生成松耦合代碼。讓老式普通的Java對象具有了以前由EJB所獨有的功能。本書以實用為主要目標,通過大量的範例來展示Spring框架。結合一些實用代碼片段,向讀者介紹如何建立簡單而有效的J2EE程式,如何解決數據存留問題、處理異步訊息、創建和使用遠程服務、建立Web程式以及與其他流行框架集成。讀者將學習到如何利用Spring編寫更簡單、更易維護的代碼,從而把主要精力集中到真正的核心問題上:關鍵的業務需求。
本書針對想利用簡單的Java對象來創建企業級程式的Java開發人員,即使是EJB的鐵桿支持者也會喜歡本書。因為其中介紹了如何結合EJB組件與SPring。本書還涉及了軟體體系,並介紹了如何把Spring套用到企業級程式的不同層次。