出版時(shí)間:2012-2 出版社:電子工業(yè)出版社 作者:陳雄華 頁(yè)數(shù):710
Tag標(biāo)簽:無(wú)
內(nèi)容概要
Spring
3.0是Spring在積蓄了3年之久后,隆重推出的一個(gè)重大升級(jí)版本,進(jìn)一步加強(qiáng)了Spring作為Java領(lǐng)域第一開(kāi)源平臺(tái)的翹楚地位。
Spring
3.0引入了眾多Java開(kāi)發(fā)者翹首以盼的新功能和新特性,如OXM、校驗(yàn)及格式化框架、REST風(fēng)格的Web編程模型等。這些新功能實(shí)用性強(qiáng)、易用性高,可大幅降低Java應(yīng)用,特別是Java
Web應(yīng)用開(kāi)發(fā)的難度,同時(shí)有效提升應(yīng)用開(kāi)發(fā)的優(yōu)雅性。
《Spring3.x企業(yè)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)》是在《精通Spring
2.x——企業(yè)應(yīng)用開(kāi)發(fā)詳解》的基礎(chǔ)上,經(jīng)過(guò)歷時(shí)一年的重大調(diào)整改版而成的,本書(shū)延續(xù)了上一版本追求深度,注重原理,不停留在技術(shù)表面的寫(xiě)作風(fēng)格,力求使讀者在熟練使用Spring的各項(xiàng)功能的同時(shí),還能透徹理解Spring的內(nèi)部實(shí)現(xiàn),真正做到知其然知其所以然。此外,本書(shū)重點(diǎn)突出了“實(shí)戰(zhàn)性”的主題,力求使全書(shū)“從實(shí)際項(xiàng)目中來(lái),到實(shí)際項(xiàng)目中去”。
作者簡(jiǎn)介
陳雄華,2002年畢業(yè)于廈門(mén)大學(xué)計(jì)算機(jī)與信息工程學(xué)院,獲碩士學(xué)位。是寶寶淘科技有限公司的創(chuàng)始人之一。這是一個(gè)服務(wù)于全國(guó)母嬰用戶(hù)的綜合性網(wǎng)站,作者負(fù)責(zé)網(wǎng)站整體框架設(shè)計(jì)牲及核心代碼開(kāi)發(fā)的工作。技術(shù)開(kāi)發(fā)之余,常將經(jīng)驗(yàn)所得行諸于文字,作者是天極網(wǎng)、IT168的專(zhuān)欄作者,在各大技術(shù)網(wǎng)站、報(bào)刊雜志發(fā)表過(guò)數(shù)十篇技術(shù)文章,廣受讀者好評(píng)。于2005年出版《精通JBuilder2005》,本書(shū)是2005年最暢銷(xiāo)技術(shù)圖書(shū)之一。 林開(kāi)雄,2006年畢業(yè)于集美大學(xué)軟件工程專(zhuān)業(yè),獲取學(xué)士學(xué)位。資深軟件工程師,精通Spring等優(yōu)秀開(kāi)源技術(shù)在企業(yè)的應(yīng)用開(kāi)發(fā),主要研究方向包括業(yè)務(wù)基礎(chǔ)平臺(tái)、BPM、智能報(bào)表、分布式等技術(shù)。
書(shū)籍目錄
第1篇 概述
第1章 Spring概述
1.1 認(rèn)識(shí)Spring
1.2 關(guān)于SpringSource
1.3 Spring帶給我們什么
1.4 Spring體系結(jié)構(gòu)
1.5 Spring 3.0的新功能
1.5.1 核心API更新到Java 5.
1.5.2 Spring表達(dá)式語(yǔ)言
1.5.3 可通過(guò)Java類(lèi)提供IoC配置信息
1.5.4 通用類(lèi)型轉(zhuǎn)換系統(tǒng)和屬性格式化系統(tǒng)
1.5.5 數(shù)據(jù)訪(fǎng)問(wèn)層新增OXM功能
1.5.6 Web層的增強(qiáng)
1.5.7 其他
1.6 Spring對(duì)Java版本的要求
1.7 如何獲取Spring
1.8 小結(jié)
第2章 快速入門(mén)
2.1 實(shí)例功能概述
2.1.1 比Hello World更適用的實(shí)例
2.1.2 實(shí)例功能簡(jiǎn)介
2.2 環(huán)境準(zhǔn)備
2.2.1 創(chuàng)建庫(kù)表
2.2.2 建立工程
2.2.3 類(lèi)包及Spring配置文件規(guī)劃
2.3 持久層
2.3.1 建立領(lǐng)域?qū)ο?br />2.3.2 UserDao
2.3.3 LoginLogDao
2.3.4 在Spring中裝配DAO
2.4 業(yè)務(wù)層
2.4.1 UserService
2.4.2 在Spring中裝配Service
2.4.3 單元測(cè)試
2.5 展現(xiàn)層
2.5.1 配置Spring MVC框架
2.5.2 處理登錄請(qǐng)求
2.5.3 JSP視圖頁(yè)面
2.6 運(yùn)行Web應(yīng)用
2.7 小結(jié)
第2篇 IoC和AOP
第3章 IoC容器概述
3.1 IoC概述
3.1.1 通過(guò)實(shí)例理解IoC的概念
3.1.2 IoC的類(lèi)型
3.1.3 通過(guò)容器完成依賴(lài)關(guān)系的注入
3.2 相關(guān)Java基礎(chǔ)知識(shí)
3.2.1 簡(jiǎn)單實(shí)例
3.2.2 類(lèi)裝載器ClassLoader
3.2.3 Java反射機(jī)制
3.3 資源訪(fǎng)問(wèn)利器
3.3.1 資源抽象接口
3.3.2 資源加載
3.4 BeanFactory和ApplicationContext
3.4.1 BeanFactory介紹
3.4.2 ApplicationContext介紹
3.4.3 父子容器
3.5 Bean的生命周期
3.5.1 BeanFactory中Bean的生命周期
3.5.2 ApplicationContext中Bean的生命周期
3.6 小結(jié)
第4章 在IoC容器中裝配Bean
4.1 Spring配置概述
4.1.1 Spring容器高層視圖
4.1.2 基于XML的配置
4.2 Bean基本配置
4.2.1 裝配一個(gè)Bean
4.2.2 Bean的命名
4.3 依賴(lài)注入
4.3.1 屬性注入
4.3.2 構(gòu)造函數(shù)注入
4.3.3 工廠(chǎng)方法注入
4.3.4 選擇注入方式的考量
4.4 注入?yún)?shù)詳解
4.4.1 字面值
4.4.2 引用其他Bean
4.4.3 內(nèi)部Bean
4.4.4 null值
4.4.5 級(jí)聯(lián)屬性
4.4.6 集合類(lèi)型屬性
4.4.7 簡(jiǎn)化配置方式
4.4.8 自動(dòng)裝配
4.5 方法注入
4.5.1 lookup方法注入
4.5.2 方法替換
4.6 <bean>之間的關(guān)系
4.6.1 繼承
4.6.2 依賴(lài)
4.6.3 引用
4.7 整合多個(gè)配置文件
4.8 Bean作用域
4.8.1 singleton作用域
4.8.2 prototype作用域
4.8.3 Web應(yīng)用環(huán)境相關(guān)的Bean作用域
4.8.4 作用域依賴(lài)問(wèn)題
4.9 FactoryBean
4.10 基于注解的配置
4.10.1 使用注解定義Bean
4.10.2 使用注解配置信息啟動(dòng)Spring容器
4.10.3 自動(dòng)裝配Bean
4.10.4 Bean作用范圍及生命過(guò)程方法
4.11 基于Java類(lèi)的配置
4.11.1 使用Java類(lèi)提供Bean定義信息
4.11.2 使用基于Java類(lèi)的配置信息啟動(dòng)Spring容器
4.12 不同配置方式比較
4.13 小結(jié)
第5章 Spring容器高級(jí)主題
5.1 Spring容器技術(shù)內(nèi)幕
5.1.1 內(nèi)部工作機(jī)制
5.1.2 BeanDefinition
5.1.3 InstantiationStrategy
5.1.4 BeanWrapper
5.2 屬性編輯器
5.2.1 JavaBean的編輯器
5.2.2 Spring默認(rèn)屬性編輯器
5.2.3 自定義屬性編輯器
5.3 使用外部屬性文件
5.3.1 使用外部屬性文件
5.3.2 使用加密的屬性文件
5.3.3 屬性文件自身的引用
5.4 引用Bean的屬性值
5.5 國(guó)際化信息
5.5.1 基礎(chǔ)知識(shí)
5.5.2 MessageSource
5.5.3 容器級(jí)的國(guó)際化信息資源
5.6 容器事件
5.6.1 Spring事件類(lèi)結(jié)構(gòu)
5.6.2 解構(gòu)Spring事件體系的具體實(shí)現(xiàn)
5.6.3 一個(gè)實(shí)例
5.7 小結(jié)
第6章 Spring AOP基礎(chǔ)
6.1 AOP概述
6.1.1 AOP到底是什么
6.1.2 AOP術(shù)語(yǔ)
6.1.3 AOP的實(shí)現(xiàn)者
6.2 基礎(chǔ)知識(shí)
6.2.1 帶有橫切邏輯的實(shí)例
6.2.2 JDK動(dòng)態(tài)代理
6.2.3 CGLib動(dòng)態(tài)代理
6.2.4 AOP聯(lián)盟
6.2.5 代理知識(shí)小結(jié)
6.3 創(chuàng)建增強(qiáng)類(lèi)
6.3.1 增強(qiáng)類(lèi)型
6.3.2 前置增強(qiáng)
6.3.3 后置增強(qiáng)
6.3.4 環(huán)繞增強(qiáng)
6.3.5 異常拋出增強(qiáng)
6.3.6 引介增強(qiáng)
6.4 創(chuàng)建切面
6.4.1 切點(diǎn)類(lèi)型
6.4.2 切面類(lèi)型
6.4.3 靜態(tài)普通方法名匹配切面
6.4.4 靜態(tài)正則表達(dá)式方法匹配切面
6.4.5 動(dòng)態(tài)切面
6.4.6 流程切面
6.4.7 復(fù)合切點(diǎn)切面
6.4.8 引介切面
6.5 自動(dòng)創(chuàng)建代理
6.5.1 實(shí)現(xiàn)類(lèi)介紹
6.5.2 BeanNameAutoProxyCreator
6.5.3 DefaultAdvisorAutoProxyCreator
6.6 小結(jié)
第7章 基于@AspectJ和Schema的AOP
7.1 Spring對(duì)AOP的支持
7.2 JDK 5.0注解知識(shí)快速進(jìn)階
7.2.1 了解注解
7.2.2 一個(gè)簡(jiǎn)單的注解類(lèi)
7.2.3 使用注解
7.2.4 訪(fǎng)問(wèn)注解
7.3 著手使用@AspectJ
7.3.1 使用前的準(zhǔn)備
7.3.2 一個(gè)簡(jiǎn)單的例子
7.3.3 如何通過(guò)配置使用@AspectJ切面
7.4 @AspectJ語(yǔ)法基礎(chǔ)
7.4.1 切點(diǎn)表達(dá)式函數(shù)
7.4.2 在函數(shù)入?yún)⒅惺褂猛ㄅ浞?br />7.4.3 邏輯運(yùn)算符
7.4.4 不同增強(qiáng)類(lèi)型
7.4.5 引介增強(qiáng)用法
7.5 切點(diǎn)函數(shù)詳解
7.5.1 @annotation()
7.5.2 execution()
7.5.3 args()和@args()
7.5.4 within()
7.5.5 @within()和@target()
7.5.6 target()的this()
7.6 @AspectJ進(jìn)階
7.6.1 切點(diǎn)復(fù)合運(yùn)算
7.6.2 命名切點(diǎn)
7.6.3 增強(qiáng)織入的順序
7.6.4 訪(fǎng)問(wèn)連接點(diǎn)信息
7.6.5 綁定連接點(diǎn)方法入?yún)?br />7.6.6 綁定代理對(duì)象
7.6.7 綁定類(lèi)注解對(duì)象
7.6.8 綁定返回值
7.6.9 綁定拋出的異常
7.7 基于Schema配置切面
7.7.1 一個(gè)簡(jiǎn)單切面的配置
7.7.2 配置命名切點(diǎn)
7.7.3 各種增強(qiáng)類(lèi)型的配置
7.7.4 綁定連接點(diǎn)信息
7.7.5 Advisor配置
7.8 混合切面類(lèi)型
7.8.1 混合使用各種切面類(lèi)型
7.8.2 各種切面類(lèi)型總結(jié)
7.9 JVM Class文件字節(jié)碼轉(zhuǎn)換基礎(chǔ)知識(shí)
7.9.1 java.lang.instrument包的工作原理
7.9.2 如何向JVM中注冊(cè)轉(zhuǎn)換器
7.9.3 使用JVM啟動(dòng)參數(shù)注冊(cè)轉(zhuǎn)換器的問(wèn)題
7.10 使用LTW織入切面
7.10.1 Spring的LoadTimeWeaver
7.10.2 使用LTW織入一個(gè)切面
7.10.3 在Tomcat下的配置
7.10.4 在其他Web應(yīng)用服務(wù)器下的配置
7.11 小結(jié)
第3篇 數(shù)據(jù)訪(fǎng)問(wèn)
第8章 Spring對(duì)DAO的支持
8.1 Spring的DAO理念
8.2 統(tǒng)一的異常體系
8.2.1 Spring的DAO異常體系
8.2.2 JDBC的異常轉(zhuǎn)換器
8.2.3 其他持久技術(shù)的異常轉(zhuǎn)換器
8.3 統(tǒng)一數(shù)據(jù)訪(fǎng)問(wèn)模板
8.3.1 使用模板和回調(diào)機(jī)制
8.3.2 Spring為不同持久化技術(shù)所提供的模板類(lèi)
8.4 數(shù)據(jù)源
8.4.1 配置一個(gè)數(shù)據(jù)源
8.4.2 獲取JNDI數(shù)據(jù)源
8.4.3 Spring的數(shù)據(jù)源實(shí)現(xiàn)類(lèi)
8.5 小結(jié)
第9章 Spring的事務(wù)管理
9.1 數(shù)據(jù)庫(kù)事務(wù)基礎(chǔ)知識(shí)
9.1.1 何為數(shù)據(jù)庫(kù)事務(wù)
9.1.2 數(shù)據(jù)并發(fā)的問(wèn)題
9.1.3 數(shù)據(jù)庫(kù)鎖機(jī)制
9.1.4 事務(wù)隔離級(jí)別
9.1.5 JDBC對(duì)事務(wù)支持
9.2 ThreadLocal基礎(chǔ)知識(shí)
9.2.1 ThreadLocal是什么
9.2.2 ThreadLocal的接口方法
9.2.3 一個(gè)TheadLocal實(shí)例
9.2.4 與Thread同步機(jī)制的比較
9.2.5 Spring使用ThreadLocal解決線(xiàn)程安全問(wèn)題
9.3 Spring對(duì)事務(wù)管理的支持
9.3.1 事務(wù)管理關(guān)鍵抽象
9.3.2 Spring的事務(wù)管理器實(shí)現(xiàn)類(lèi)
9.3.3 事務(wù)同步管理器
9.3.4 事務(wù)傳播行為
9.4 編程式的事務(wù)管理
9.5 使用XML配置聲明式事務(wù)
9.5.1 一個(gè)將被實(shí)施事務(wù)增強(qiáng)的服務(wù)接口
9.5.2 使用原始的
TransactionProxyFactoryBean
9.5.3 基于tx/aop命名空間的配置
9.6 使用注解配置聲明式事務(wù)
9.6.1 使用@Transactional注解
9.6.2 通過(guò)AspectJ LTW引入事務(wù)切面
9.7 集成特定的應(yīng)用服務(wù)器
9.7.1 BEA WebLogic
9.7.2 BEA WebLogic
9.8 小結(jié)
第10章 Spring的事務(wù)管理難點(diǎn)剖析
10.1 DAO和事務(wù)管理的牽絆
10.1.1 JDBC訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)
10.1.2 Hibernate訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)
10.2 應(yīng)用分層的迷惑
10.3 事務(wù)方法嵌套調(diào)用的迷茫
10.3.1 Spring事務(wù)傳播機(jī)制回顧
10.3.2 相互嵌套的服務(wù)方法
10.4 多線(xiàn)程的困惑
10.4.1 Spring通過(guò)單實(shí)例化Bean簡(jiǎn)化多線(xiàn)程問(wèn)題
10.4.2 啟動(dòng)獨(dú)立線(xiàn)程調(diào)用事務(wù)方法
10.5 聯(lián)合軍種作戰(zhàn)的混亂
10.5.1 Spring事務(wù)管理器的應(yīng)對(duì)
10.5.2 Hibernate+Spring JDBC混合框架的事務(wù)管理
10.6 特殊方法成漏網(wǎng)之魚(yú)
10.6.1 哪些方法不能實(shí)施Spring AOP事務(wù)
10.6.2 事務(wù)增強(qiáng)遺漏實(shí)例
10.7 數(shù)據(jù)連接泄漏
10.7.1 底層連接資源的訪(fǎng)問(wèn)問(wèn)題
10.7.2 Spring JDBC數(shù)據(jù)連接泄漏
10.7.3 通過(guò)DataSourceUtils獲取數(shù)據(jù)連接
10.7.4 通過(guò)DataSourceUtils獲取數(shù)據(jù)連接
10.7.5 JdbcTemplate如何做到對(duì)連接泄漏的免疫
10.7.6 使用TransactionAwareDataSourceProxy
10.7.7 其他數(shù)據(jù)訪(fǎng)問(wèn)技術(shù)的等價(jià)類(lèi)
10.8 小結(jié)
第11章 使用Spring JDBC訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)
11.1 使用Spring JDBC
11.1.1 JDBCTemplate小試牛刀
11.1.2 在DAO中使用JDBCTemplate
11.2 基本的數(shù)據(jù)操作
11.2.1 更改數(shù)據(jù)
11.2.2 返回?cái)?shù)據(jù)庫(kù)的表自增主鍵值
11.2.3 批量更改數(shù)據(jù)
11.2.4 查詢(xún)數(shù)據(jù)
11.2.5 查詢(xún)單值數(shù)據(jù)
11.2.6 調(diào)用存儲(chǔ)過(guò)程
11.3 BLOB/CLOB類(lèi)型數(shù)據(jù)的操作
11.3.1 如何獲取本地?cái)?shù)據(jù)連接
11.3.2 相關(guān)的操作接口
11.3.3 插入Lob類(lèi)型的數(shù)據(jù)
11.3.4 以塊數(shù)據(jù)方式讀取Lob數(shù)據(jù)
11.3.5 以流數(shù)據(jù)方式讀取Lob數(shù)據(jù)
11.4 自增鍵和行集
11.4.1 自增鍵的使用
11.4.2 如何規(guī)劃主鍵方案
11.4.3 以行集返回?cái)?shù)據(jù)
11.5 其他類(lèi)型的JDBCTemplate
11.5.1 NamedParameterJDBCTemplate
11.5.2 SimpleJDBCTemplate
11.6 以O(shè)O方式訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)
11.6.1 使用MappingSqlQuery查詢(xún)數(shù)據(jù)
11.6.2 使用SqlUpdate更新數(shù)據(jù)
11.6.3 使用StoredProcedure執(zhí)行存儲(chǔ)過(guò)程
11.6.4 SqlFunction類(lèi)
11.7 小結(jié)
第12章 整合其他ORM框架
12.1 Spring整合ORM技術(shù)
12.2 在Spring中使用Hibernate
12.2.1 配置SessionFactory
12.2.2 使用HibernateTemplate
12.2.3 處理LOB類(lèi)型數(shù)據(jù)
12.2.4 添加Hibernate事件監(jiān)聽(tīng)器
12.2.5 使用原生Hibernate API
12.2.6 使用注解配置
12.2.7 事務(wù)處理
12.2.8 延遲加載的問(wèn)題
12.3 在Spring中使用myBatis
12.3.1 配置SqlMapClient
12.3.2 在Spring配置myBatis
12.3.3 編寫(xiě)myBatis的DAO
12.5 DAO層設(shè)計(jì)
12.5.1 DAO基類(lèi)的設(shè)計(jì)
12.5.2 查詢(xún)接口方法的設(shè)計(jì)
12.5.3 分頁(yè)查詢(xún)接口設(shè)計(jì)
12.6 小結(jié)
第4篇 業(yè)務(wù)層及Web層技術(shù)
第13章 任務(wù)調(diào)度和異步執(zhí)行器
13.1 任務(wù)調(diào)度概述
13.2 Quartz快速進(jìn)階
13.2.1 Quartz基礎(chǔ)結(jié)構(gòu)
13.2.2 使用SimpleTrigger
13.2.3 使用CronTrigger
13.2.4 使用Calendar
13.2.5 任務(wù)調(diào)度信息存儲(chǔ)
13.3 在Spring中使用Quartz
13.3.1 創(chuàng)建JobDetail
13.3.2 創(chuàng)建Trigger
13.3.3 創(chuàng)建Scheduler
13.4 Spring中使用JDK Timer
13.4.1 Timer和TimerTask
13.4.2 Spring對(duì)JDK Timer的支持
13.5 Spring對(duì)JDK 5.0 Executor的支持
13.5.1 了解JDK 5.0的Executor
13.5.2 Spring對(duì)Executor所提供的抽象
13.6 實(shí)際應(yīng)用中的任務(wù)調(diào)度
13.6.1 如何產(chǎn)生任務(wù)
13.6.2 任務(wù)調(diào)度對(duì)應(yīng)用程序集群的影響
13.6.3 任務(wù)調(diào)度云
13.6.4 Web應(yīng)用程序中調(diào)度器的啟動(dòng)和關(guān)閉問(wèn)題
13.7 小結(jié)
第14章 使用OXM進(jìn)行對(duì)象XML映射
14.1 認(rèn)識(shí)XML解析技術(shù)
14.1.1 什么是XML
14.1.2 XML的處理技術(shù)
14.2 XML處理利器:XStream
14.2.1 XStream概述
14.2.2 快速入門(mén)
14.2.3 使用XStream別名
14.2.4 XStream轉(zhuǎn)換器
14.2.5 XStream注解
14.2.6 流化對(duì)象
14.2.7 持久化API
14.2.8 額外功能:處理JSON
14.3 其他常見(jiàn)O/X Mapping開(kāi)源項(xiàng)目
14.3.1 JAXB
14.3.2 XMLBeans
14.3.3 Castor
14.3.4 JiBX
14.3.5 總結(jié)比較
14.4 與Spring OXM整合
14.4.1 Spring OXM概述
14.4.2 整合OXM實(shí)現(xiàn)者
14.4.3 如何在Spring中進(jìn)行配置
14.4.4 Spring OXM 簡(jiǎn)單實(shí)例
14.5 小結(jié)
第15章 Spring MVC
15.1 Spring MVC概述
15.1.1 體系結(jié)構(gòu)
15.1.2 配置DispatcherServlet
15.1.3 一個(gè)簡(jiǎn)單的實(shí)例
15.2 注解驅(qū)動(dòng)的控制器
15.2.1 使用@RequestMapping映射請(qǐng)求
15.2.2 請(qǐng)求處理方法簽名概述
15.2.3 處理方法簽名詳細(xì)說(shuō)明
15.2.4 使用HttpMessageConverter<T>
15.2.5 處理模型數(shù)據(jù)
15.3 處理方法的數(shù)據(jù)綁定
15.3.1 數(shù)據(jù)綁定流程剖析
15.3.2 數(shù)據(jù)轉(zhuǎn)換
15.3.3 數(shù)據(jù)格式化
15.3.4 數(shù)據(jù)校驗(yàn)
15.4 視圖和視圖解析器
15.4.1 認(rèn)識(shí)視圖
15.4.2 認(rèn)識(shí)視圖解析器
15.4.3 JSP和JSTL
15.4.4 模板視圖
15.4.5 Excel
15.4.6 PDF
15.4.7 輸出XML
15.4.8 輸出JSON
15.4.9 使用XmlViewResolver
15.4.10 使用ResourceBundle ViewResolver
15.4.11 混合使用多種視圖技術(shù)
15.5 本地化解析
15.5.1 本地化概述
15.5.2 使用CookieLocaleResolver
15.5.3 使用SessionLocaleResolver
15.5.4 使用LocaleChangeInterceptor
15.6 文件上傳
15.6.1 配置MultipartResolver
15.6.2 編寫(xiě)控制器和文件上傳表單頁(yè)面
15.7 雜項(xiàng)
15.7.1 靜態(tài)資源處理
15.7.2 裝配攔截器
15.7.3 異常處理
15.8 小結(jié)
第5篇 測(cè)試及實(shí)戰(zhàn)
第16章 實(shí)戰(zhàn)型單元測(cè)試
16.1 單元測(cè)試概述
16.1.1 為什么需要單元測(cè)試
16.1.2 單元測(cè)試之誤解
16.1.3 單元測(cè)試之困境
16.1.4 單元測(cè)試基本概念
16.2 JUnit 4快速進(jìn)階
16.2.1 JUnit 4概述
16.2.2 JUnit 4生命周期
16.2.3 使用JUnit
16.3 模擬利器Mockito
16.3.1 模擬測(cè)試概述
16.3.2 創(chuàng)建Mock對(duì)象
16.3.3 設(shè)定Mock對(duì)象的期望行為及返回值
16.3.4 驗(yàn)證交互行為
16.4 測(cè)試整合之王Unitils
16.4.1 Unitils概述
16.4.2 集成Spring
16.4.3 集成Hibernate
16.4.4 集成Dbunit
16.4.5 自定義擴(kuò)展模塊
16.5 使用Unitils測(cè)試DAO層
16.5.1 數(shù)據(jù)庫(kù)測(cè)試的難點(diǎn)
16.5.2 擴(kuò)展Dbunit用Excel準(zhǔn)備數(shù)據(jù)
16.5.3 測(cè)試實(shí)戰(zhàn)
16.6 使用unitils測(cè)試Service層
16.7 測(cè)試Web層
16.7.1 對(duì)LoginController進(jìn)行單元測(cè)試
16.7.2 使用Spring Servlet API模擬對(duì)象
16.7.3 使用Spring RestTemplate測(cè)試
16.7.4 使用Selenium測(cè)試
16.8 小結(jié)
第17章 實(shí)戰(zhàn)案例開(kāi)發(fā)
17.1 論壇案例概述
17.1.1 論壇整體功能結(jié)構(gòu)
17.1.2 論壇用例描述
17.1.3 主要功能流程描述
17.2 系統(tǒng)設(shè)計(jì)
17.2.1 技術(shù)框架選擇
17.2.2 Web目錄結(jié)構(gòu)及類(lèi)包結(jié)構(gòu)規(guī)劃
17.2.3 單元測(cè)試類(lèi)包結(jié)構(gòu)規(guī)劃
17.2.4 系統(tǒng)的結(jié)構(gòu)圖
17.2.5 PO的類(lèi)設(shè)計(jì)
17.2.6 持久層設(shè)計(jì)
17.2.7 服務(wù)層設(shè)計(jì)
17.2.8 Web層設(shè)計(jì)
17.2.9 數(shù)據(jù)庫(kù)設(shè)計(jì)
17.3 開(kāi)發(fā)前的準(zhǔn)備
17.4 持久層開(kāi)發(fā)
17.4.1 PO類(lèi)
17.4.2 DAO基類(lèi)
17.4.3 通過(guò)擴(kuò)展基類(lèi)所定義DAO類(lèi)
17.4.4 DAO Bean的裝配
17.4.5 使用Hibernate二級(jí)緩存
17.5 對(duì)持久層進(jìn)行測(cè)試
17.5.1 配置Unitils測(cè)試環(huán)境
17.5.2 準(zhǔn)備測(cè)試數(shù)據(jù)庫(kù)及測(cè)試數(shù)據(jù)
17.5.3 編寫(xiě)DAO測(cè)試基類(lèi)
17.5.4 編寫(xiě)B(tài)oardDao測(cè)試用例
17.6 服務(wù)層開(kāi)發(fā)
17.6.1 UserService的開(kāi)發(fā)
17.6.2 ForumService的開(kāi)發(fā)
17.6.3 服務(wù)類(lèi)Bean的裝配
17.7 對(duì)服務(wù)層進(jìn)行測(cè)試
17.7.1 編寫(xiě)Service測(cè)試基類(lèi)
17.7.2 編寫(xiě)ForumService測(cè)試用例
17.8 Web層開(kāi)發(fā)
17.8.1 BaseController的基類(lèi)
17.8.2 用戶(hù)登錄和注銷(xiāo)
17.8.3 用戶(hù)注冊(cè)
17.8.4 論壇管理
17.8.5 論壇普通功能
17.8.6 分頁(yè)顯示論壇版塊的主題帖子
17.8.7 web.xml配置
17.8.8 Spring MVC配置
17.9 對(duì)Web層進(jìn)行測(cè)試
17.9.1 編寫(xiě)Web測(cè)試基類(lèi)
17.9.2 編寫(xiě)ForumManageController測(cè)試用例
17.10 部署和運(yùn)行應(yīng)用
17.11 小結(jié)
以下內(nèi)容詳見(jiàn)本書(shū)配書(shū)光盤(pán):
附錄A JavaMail發(fā)送郵件
附錄B 在Spring中開(kāi)發(fā)Web Service
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 12.1Spring整合ORM技術(shù) Spring的開(kāi)放性和擴(kuò)展性在持久化技術(shù)領(lǐng)域得到了充分的證明,Spring不但直接提供了SpringJDBC,還整合了JPA、Hibernate、iBatis、JDO等ORM領(lǐng)域的代表者。使用者完全可以根據(jù)需要作出適合自己的選擇。 在第11章中,我們?cè)敿?xì)講解了Spring對(duì)JDBC的API的封裝,其中大部分的思路和整合其他ORM框架是一脈相通的:在資源管理、DAO模板類(lèi)、事務(wù)管理、DAO異常體系等方面,Spring始終保持整合方式上的統(tǒng)一。在Spring中掌握了一種持久化技術(shù)后,切換到另一種持久化技術(shù)并不需要花費(fèi)什么代價(jià)。 Spring在集成ORM框架時(shí),始終走民主親民的路線(xiàn)。它既提供了方便的模板類(lèi)對(duì)原ORM進(jìn)行簡(jiǎn)化封裝,以一種更具Spring的風(fēng)格使用ORM技術(shù)。同時(shí),在保證繼續(xù)享受Spring通用功能的情況下,開(kāi)發(fā)者還可能使用ORM框架原生的API編寫(xiě)程序。這讓一直使用ORM原生API編程的開(kāi)發(fā)者感到自然,不會(huì)存在過(guò)渡上的障礙。 當(dāng)我們使用某種ORM框架時(shí),為了讓其更適合項(xiàng)目的需要,降低使用難度,一般情況下,都會(huì)在原有ORMAPI的基礎(chǔ)上編寫(xiě)一套封裝類(lèi)。Spring高屋建瓴地為我們做了類(lèi)似的工作,所以在決定花費(fèi)力氣并冒著風(fēng)險(xiǎn)去構(gòu)造類(lèi)似的底層架構(gòu)之前,最好事先參考一下Spring的解決方案,而不要急著另起爐灶。 使用Spring所提供的ORM整合方案,我們可以獲得許多好處。 方便基礎(chǔ)設(shè)施的搭建 不同的ORM技術(shù)都有一套自己的方案以初始化框架、搭建基礎(chǔ)設(shè)施等。在搭建基礎(chǔ)設(shè)施中,數(shù)據(jù)源是不可或缺的資源,不同ORM框架的實(shí)現(xiàn)方式各不相同:如JPA中通過(guò)persistence.xml定義數(shù)據(jù)源,而Hibernate在hibernate.cfg.xml中配置數(shù)據(jù)源,目的相同但方法迥異。在數(shù)據(jù)源基礎(chǔ)上,不同的ORM框架擁有自己的基礎(chǔ)實(shí)例,如Hibernate的SessionFactory、iBatis的SqlMapClient,它們是ORM程序運(yùn)行時(shí)的底層設(shè)施,在程序級(jí)別代表著ORM框架本身。在學(xué)習(xí)不同的ORM框架知識(shí)時(shí),往往都會(huì)有一個(gè)獨(dú)立的篇章專(zhuān)門(mén)講解如何初始化這些實(shí)例。在Spring中對(duì)于不同的ORM框架,首先,始終可以采用相同方式配置數(shù)據(jù)源:其次,Spring為不同的ORM框架提供相應(yīng)的FactoryBean,用以初始化ORM框架的基礎(chǔ)設(shè)施,可以將它們當(dāng)成普通Bean對(duì)待,唯一的差別只是屬性的不同而已。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
Spring 3.x企業(yè)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版