《Spring in Action》

作者: (美)沃爾斯,(美)布雷登巴赫 著,畢慶紅 等譯
《Spring in Action》《Spring in Action》

出 版 社: 人民郵電出版社
出版時間: 2008-10-1
字數: 867000
版次: 2
頁數: 486
印刷時間: 2008/10/01
開本: 16開
印次: 1
紙張: 膠版紙 I S B N : 9787115185273
包裝: 平裝 所屬分類: 圖書 >> 計算機/網路 >> 程式設計 >> Java Java Script J2EE

編輯推薦

“真是一本好書……極度推薦。”
 ——Javalobby.org
“……這本書的確是一本易讀、易懂又實在有用的Sprin9嚮導書。如果你認為自己在Spring方面還有全方位學習的需要,那么它應該有足夠的理由在你的書架上占據一席之地。”
 ——熊節,ThoughtWorks諮詢師
本書是暢銷書《SpringinAction》的第二版。在上一版的基礎上,本版擴展了很多內容,並涵蓋TSpring的許多新特性。
Spring是一種輕型容器式框架,能夠利用簡單的Java對象創建企業級組件。通過使用依賴注入和AOP,Spring能夠生成松耦合代碼。讓老式普通的Java對象具有了以前由EJB所獨有的功能。本書以實用為主要目標,通過大量的範例來展示Spring框架。結合一些實用代碼片段,向讀者介紹如何建立簡單而有效的J2EE程式,如何解決數據存留問題、處理異步訊息、創建和使用遠程服務、建立Web程式以及與其他流行框架集成。讀者將學習到如何利用Spring編寫更簡單、更易維護的代碼,從而把主要精力集中到真正的核心問題上:關鍵的業務需求。
本書針對想利用簡單的Java對象來創建企業級程式的Java開發人員,即使是EJB的鐵桿支持者也會喜歡本書。因為其中介紹了如何結合EJB組件與SPring。本書還涉及了軟體體系,並介紹了如何把Spring套用到企業級程式的不同層次。

《Spring in Action》 內容簡介

本書分成三大部分並附有兩個附錄,每一部分分別對應Spring框架的一個領域核心框架業務和數據層、表示層。每一部分既是建立在前一部分的基礎上,同時也可以獨立存在。因此,讀者不必從頭開始,完全可以直接深入到某個主題。書中第一部分展示了Spring框架的兩個核心特性:依賴注入和面向切面編程。第二部分以第一部分介紹的DIAOP特性為基礎,敘述了如何將這兩個概念套用到應用程式的數據和業務層中。第三部分介紹了Spring構建Web應用程式的各種方式。
本書適合所有Java開發人員閱讀,特別是對企業級Java開發人員更有幫助。本書循序漸進地指導讀者瀏覽貫穿本書的複雜示例。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的遠程服務
8.1 Spring遠程調用概覽
8.2 與RMI一起工作
 8.2.1 連線RMI服務
 8.2.2 輸出RMI服務
8.3 使用Hessian和Burlap的遠程調用
 8.3.1 訪問Hessian/Burlap服務
 8.3.2 用Hessian或Burlap公開Bean的功能
8.4 使用HTTP invoker
 8.4.1 通過HTTP訪問服務
 8.4.2 把Bean作為HTTP服務公開
8.5 Spring和Web服務
 8.5.1 使用XFire將Bean輸出為Web服務
 8.5.2 使用JSR-181注釋聲明Web服務
 8.5.3 消費Web服務
 8.5.4 使用XFire客戶端代理Web服務
8.6 小結
 第9章 在Spring中建立契約優先Web服務
9.1 介紹Spring-WS
9.2 定義契約(首先!)
9.3 使用服務端點處理訊息
 9.3.1 建立基於JDOM訊息的端點
 9.3.2 序列化訊息載荷
9.4 合併在一起
 9.4.1 Spring-WS:全景視圖
 9.4.2 將訊息映射到端點
 9.4.3 置入服務端點
 9.4.4 配置訊息序列化器
 9.4.5 處理端點異常
 9.4.6 提供WSDL檔案
 9.4.7 部署服務
9.5 消費Spring-WS Web服務
 9.5.1 使用Web服務模板
 9.5.2 使用Web服務的網關支持
9.6 小結
 第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.1Tile視圖
 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
15.1 開始Spring Web Flow之旅
 15.1.1 安裝Spring Web Flow
 15.1.2 配置流程執行程式
 15.1.3 登記流程定義
15.2 布置流程的基礎
 15.2.1 流程變數
 15.2.2 start和end狀態
 15.2.3 蒐集顧客信息
 15.2.4 綁定比薩餅訂單
 15.2.5 完成訂單
 15.2.6 幾個結束工作
15.3 高級Web流程技術
 15.3.1 使用decision狀態
 15.3.2 提煉子流程並使用子狀態
15.4 集成Spring Web Flow與其他框架
 15.4.1 Jakarts Struts
 15.4.2 JavaServer Face
15.5 小結
 第16章 集成其他Web框架
16.1 協同使用Spring和Struts
 16.1.1 向Struts註冊Spring外掛程式
 16.1.2 編寫知曉Spring的Struts動作
 16.1.3 委託Spring配置的動作
 16.1.4 關於Struts 2
16.2 協同使用Spring和WebWork 2/Struts 2
16.3 集成Spring和Tapestry
 16.3.1 集成Spring和Tapestry 3
 16.3.2 集成Spring和Tapestry 4
16.4 協同使用Spring和JSF
 16.4.1 解析JSF管理的屬性
 16.4.2 解析Spring Bean
 16.4.3 在JSF頁面中使用Spring Bean
 16.4.4 在JSF中暴露應用程式環境
16.5 Spring中帶有DWR的支持Ajax的應用程式
 16.5.1 直接Web遠程控制
 16.5.2 訪問Spring管理的Bean DWR
16.6 小結
附錄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 小結

書摘插圖

第1章 開始Spring之旅
本章內容:
Spring核心模組
解耦套用對象
使用AOP管理交叉問題
  一切從Bean開始。
 在1996年,Java還只是一個令人興奮的剛出生的開發語言,許多開發者之所以非常關注它是因為他們看到了如何使用Applet來創建動態的Web套用,但是很快他們看到這個陌生的新語言不只是能做些耍把戲的卡通程式。不同於之前的其他語言,Java可以實現使用分布的模組來建立一個複雜的套用,它們為Applet而來,為組件而留。
1996年12月,Sun微系統公司發布了JavaBeans 1.00-A規範。JavaBeans為Java定義了軟體組件模型。這個規範規定了一系列的編碼規範,這使簡單的Java對象可以被重用,並且很容易就組成比較複雜的套用。儘管JavaBeans起初是為定義可重用套用組件而生的,但是它們被大量地用在了用戶視窗模型中。它過於簡單,以至於無法勝任任何實際的工作。企業級套用開發人員想得到更多的功能。
複雜的套用往往需要一些服務,如事務支持、安全、分布計算等,這些服務是JavaBeans無法直接提供的。所以在1998年3月,Sun發布了EJB1.0規範。該規範把Java組件擴展到伺服器端,提供了很多必需的企業級服務,但是它不再像原來的JavaBeans那樣簡單了。事實上,除了名字和JavaBeans有點相像外,EJB已經和JavaBeans沒有什麼關係了。
儘管很多成功的套用是使用EJB建立的,EJB從來沒有實現過它的預期目標——簡化企業級套用開發。EJB的聲明式編程模型確實簡化了很多基礎設施層面的開發,如事務和安全,但在部署檔案維護和各種接口(home、remote/local接口)實現等方面變得很複雜。開發人員慢慢地不再對EJB痴迷,結果這幾年EJB的普及率持續下降,很多開發人員開始尋找其他簡單的方法。
……

插圖

《Spring in Action》插圖

相關詞條

書籍 小說 雜誌 文學

相關詞條

相關搜尋

熱門詞條

聯絡我們