內容簡介
《SpringinAction》適合所有Java開發人員閱讀,特別是對企業級Java開發人員更有幫助。《SpringinAction》循序漸進地指導讀者瀏覽貫穿《SpringinAction》的複雜示例。Spring最突出之處在於它使企業級系統開發變得簡單,所以,企業級系統開發人員會更加欣賞《SpringinAction》中的示例代碼。《SpringinAction》最後4章描述了Spring是如何為Web層開發提供支持的,如果你是一位Web開發人員,你會發現《SpringinAction》的最後一部分特別有用。編輯推薦
“真是一本好書……極度推薦。”
——Javalobby. org
“……這《SpringinAction》的確是一本易讀、易懂又實在有用的Sprin9嚮導書。如果你認為自己在Spring方面還有全方位學習的需要,那么它應該有足夠的理由在你的書架上占據一席之地。”
——熊節,thoughtworks諮詢師
《SpringinAction》(第2版)是暢銷書《SpringinAction》的第二版。在上一版的基礎上,本版擴展了很多內容,並涵蓋TSpring的許多新特性。
Spring是一種輕型容器式框架,能夠利用簡單的Java對象創建企業級組件。通過使用依賴注入和AOP,Spring能夠生成松耦合代碼。讓老式普通的Java對象具有了以前由EJB所獨有的功能。《SpringinAction》以實用為主要目標,通過大量的範例來展示Spring框架。結合一些實用代碼片段,向讀者介紹如何建立簡單而有效的J2EE程式,如何解決數據存留問題、處理異步訊息、創建和使用遠程服務、建立Web程式以及與其他流行框架集成。讀者將學習到如何利用Spring編寫更簡單、更易維護的代碼,從而把主要精力集中到真正的核心問題上:關鍵的業務需求。
《SpringinAction》針對想利用簡單的Java對象來創建企業級程式的Java開發人員,即使是EJB的鐵桿支持者也會喜歡《SpringinAction》。因為其中介紹了如何結合EJB組件與SPring。《SpringinAction》還涉及了軟體體系,並介紹了如何把Spring套用到企業級程式的不同層次。
目錄
第一部分Spring的核心
第1章開始Spring之旅
1.1Spring是什麼
1.2開始Spring之旅
1.3理解依賴注入
1.3.1依賴注入
1.3.2DI套用
1.3.3企業級套用中的依賴注入
1.4套用AOP
1.4.1AOP介紹
1.4.2AOP使用
1.5小結
第2章基本Bean裝配
2.1容納你的Bean
2.1.1BeanFactory介紹
2.1.2使用套用上下文
2.1.3Bean的生命
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.1Bean範圍化
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注入非SpringBean
3.4註冊自定義屬性編輯器
3.5使用Spring的特殊Bean
3.5.1後處理Bean
3.5.2Bean工廠的後處理
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.1AOP簡介
4.1.1定義AOP術語
4.1.2Spring對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.1Spring的數據訪問哲學
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使用Hibernate3上下文會話
5.5Spring和Java持久API
5.5.1使用JPA模板
5.5.2創建一個實體管理器工廠
5.5.3建立使用JPA的DAO
5.6Spring和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.1JDBC事務
6.2.2Hibernate事務
6.2.3JPA事務
6.2.4JDO事務
6.2.5JTA事務
6.3在Spring中編寫事務
6.4聲明式事務
6.4.1定義事務參數
6.4.2代理事務
6.4.3在Spring2.0里聲明事務
6.4.4定義注釋驅動事務
6.5小結
第7章保護Spring
7.1springsecurity介紹
7.2驗證用戶身份
7.2.1配置ProviderManager
7.2.2根據資料庫驗證身份
7.2.3根據LDAP倉庫進行身份驗證
7.3控制訪問
7.3.1訪問決策投票
7.3.2決定如何投票
7.3.3處理投票棄權
7.4保護Web應用程式
7.4.1代理SpringSecurity的過濾器
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.1Spring遠程調用概覽
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使用HTTPinvoker
8.4.1通過HTTP訪問服務
8.4.2把Bean作為HTTP服務公開
8.5Spring和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.1Spring-WS:全景視圖
9.4.2將訊息映射到端點
9.4.3置入服務端點
9.4.4配置訊息序列化器
9.4.5處理端點異常
9.4.6提供WSDL檔案
9.4.7部署服務
9.5消費Spring-WSWeb服務
9.5.1使用Web服務模板
9.5.2使用Web服務的網關支持
9.6小結
第10章Spring訊息
10.1JMS簡介
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編寫純POJOMDP
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(EJB2.x)
11.1.2將EJB置入SpringBean
11.2開發Spring驅動的EJB(EJB2.x)
11.3Spring和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在Spring2中注入JNDI對象
12.2傳送電子郵件
12.2.1配置郵件傳送器
12.2.2構建電子郵件
12.3調度任務
12.3.1使用JavaTimer調度任務
12.3.2使用Quartz調度器
12.3.3按調度計畫調用方法
12.4使用JMX管理SpringBean
12.4.1將SpringBean輸出為MBean
12.4.2遠程訪問MBean
12.4.3處理通知
12.5小結
第三部分Spring客戶端
第13章處理Web請求
13.1開始SpringMVC之旅
13.1.1請求生命中的一天
13.1.2配置DispatcherServlet
13.1.3SpringMVC概述
13.2將請求映射到控制器
13.2.1使用SimpleUrlHandlerMapping
13.2.2使用ControllerClassNameHandlerMapping
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.2Tile控制器
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章使用SpringWebFlow
15.1開始SpringWebFlow之旅
15.1.1安裝SpringWebFlow
15.1.2配置流程執行程式
15.1.3登記流程定義
15.2布置流程的基礎
15.2.1流程變數
15.2.2start和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集成SpringWebFlow與其他框架
15.4.1JakartsStruts
15.4.2JavaServerFace
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關於Struts2
16.2協同使用Spring和WebWork2/Struts2
16.3集成Spring和Tapestry
16.3.1集成Spring和Tapestry3
16.3.2集成Spring和Tapestry4
16.4協同使用Spring和JSF
16.4.1解析JSF管理的屬性
16.4.2解析SpringBean
16.4.3在JSF頁面中使用SpringBean
16.4.4在JSF中暴露應用程式環境
16.5Spring中帶有DWR的支持Ajax的應用程式
16.5.1直接Web遠程控制
16.5.2訪問Spring管理的BeanDWR
16.6小結
附錄A裝配Spring
A.1下載Spring
A.1.1研究Spring發布
A.1.2構建自己的類路徑
A.2把Spring添加為一個Maven2依賴項
A.3Spring與Ant
A.4Spring與Log4j
附錄B用(和不用)Spring進行測試
B.1測試簡介
B.1.1理解不同類型的測試
B.1.2使用JUnit
B.1.3Spring在測試中的角色
B.2單元測試SpringMVC控制器
B.2.1模擬對象
B.2.2斷言ModelAndView的內容
B.3使用Spring進行綜合測試
B.3.1測試裝配後的對象
B.3.2綜合測試事務處理對象
B.3.3測試資料庫
B.3.4使用GienahTesting在JUnit4中進行測試
B.4小結
……