第1部分 介 紹
第1章 本書概述
1. 1 使用開放源碼技術
1. 2 了解設計和開發(fā)理論
1. 2. 1 先測試
1. 2. 2 少即多
1. 2. 3 總是問傻問題
1. 3 考察PetSoar項目
1. 4 抓住基礎
小結
第2章 應用概況
2. 1 另一個寵物商店
2. 2 了解可維護性的重要性
2. 3 了解PetSoar的需求
2. 4 檢查結構和技術
2. 4. 1 查看結構
2. 4. 2 查看實用庫
2. 4. 3 使用存留和搜索
2. 4. 4 使用Web前端
2. 5 測試
小結
第2部分 建立開放源碼工具箱
第3章 用JUnit進行單元測試
3. 1 測試的類型
3. 2 使用JUnit
3. 2. 1 JUnit的特征
3. 2. 2 寫一個單元測試
3. 2. 3 運行一個單元測試
3. 2. 4 運行多個測試
3. 2. 5 你需要知道JUnit的一切
小結
第4章 用MOCks測試對象的交互作用
4. 1 測試對象的交互作用
4. 1. 1 考察測試狀態(tài)中的一些易犯錯誤
4. 1. 2 探索替換物:測試交互作用
4. 2 使用模擬對象
4. 2. 1 實例場景
4. 2. 2 了解模擬對象的角色
4. 2. 3 了解模擬對象庫
4. 2. 4 使用動態(tài)模擬
小結
第5章 用Hibernate存儲對象
5. 1 了解持久化的復雜性
5. 2 用Hibemate2持久化對象
5. 2. 1 創(chuàng)建持久類
5. 2. 2 映射類到數(shù)據(jù)庫中
5. 2. 3 配置Hibernate
5. 2. 4 獲得一個會話
5. 2. 5 在數(shù)據(jù)庫中存儲對象
5. 2. 6 從數(shù)據(jù)庫中檢索對象
5. 2. 7 查詢對象
5. 2. 8 持久化對象間的聯(lián)系
5. 3 持久化層次結構對象
5. 4 了解Hibemate工具箱
5. 5 Hibemate同其他競爭技術的比較
5. 5. 1 Hibernate與EJB
5. 5. 2 Hibemate與JDO
5. 5. 3 Hibernate與DAO框架
小結
第6章 使用WebWork實現(xiàn)MVC模式
6. 1 了解模型視圖控制器
6. 1. 1 檢查模型層
6. 1. 2 檢查視圖層
6. 1. 3 檢查控制器層
6. 1. 4 把全部層聯(lián)系在一起
6. 1. 5 考證使用MVC的理由
6. 2 了解MVC. WebWork和XWork
6. 2. 1 考察XWork
6. 2. 2 考察WebWork
6. 3 進一步了解活動
6. 3. 1 一個簡單的XWork實例
6. 3. 2 配置XWork
6. 3. 3 構造活動(活動組成)
6. 3. 4 從XWork中調用一個活動
6. 3. 5 使用參數(shù)和ActionContext
6. 4 應用物理學中的牛頓第三定律
6. 4. 1 了解XWork結果和活動鏈
6. 4. 2 考察WebWork結果和Servlet環(huán)境
6. 4. 3 配置WebWork
6. 4. 4 了解調度的角色
6. 4. 5 考察JSP和Velocity中的視圖實例
6. 4. 6 基于組件的Web開發(fā)
6. 5 表達你自己
6. 5. 1 使用基礎表達式
6. 5. 2 使用高級表達式
6. 5. 3 了解ValueStack
6. 6 考察類型轉換
6. 6. 1 深入研究一個日期實例
6. 6. 2 指定默認轉換規(guī)則
6. 6. 3 指定新的轉換規(guī)則
6. 7 采用截取器分離事務
6. 7. 1 配置截取器棧
6. 7. 2 使用記錄截取器
6. 7. 3 構建自己的截取器
6. 8 Validation--一個強大的截取器
6. 8. 1 考察一個沒有使用XWork驗證框架的實例
6. 8. 2 考察一個采用XWork驗證框架的實例
6. 8. 3 使用內置的和用戶自定義的驗證
6. 8. 4 使用驗證表達式
小結
第7章 用SiteMesh簡化布局
7. 1 識別布局的問題
7. 2 使用面向對象的解決方案
7. 2. 1 裝飾器設計模式
7. 2. 2 組合設計模式
7. 2. 3 結合模式
7. 3 用SiteMesh實現(xiàn)解決方案
7. 3. 1 SiteMesh的基本原理
7. 3. 2 創(chuàng)建一個裝飾器
7. 3. 3 組成網頁
7. 3. 4 考察SiteMesh
7. 4 使用技巧
7. 4. 1 將裝飾器分組
7. 4. 2 不要懼怕引用
7. 4. 3 CSS是你的朋友
7. 4. 4 最小化HTML
7. 4. 5 分散關注點
小結
第8章 用Lucene添加搜索能力
8. 1 了解搜索的復雜性
8. 2 Lucene簡介
8. 2. 1 了解Lucene的元素
8. 2. 2 索引一個文件
8. 2. 3 搜索文件
8. 2. 4 重新索引和刪除一個已索引的文檔
8. 2. 5 使用高級搜索
8. 2. 6 定制標志的進程
小結
第9章 用XDoclet生成配置文件
9. 1 XDOclet簡介
9. 2 用XDoclet了解面向屬性編程
9. 2. 1 了解屬性的語法
9. 2. 2 運行XDoclet
9. 2. 3 用XDoclet應用高級的Hibernate或映射
9. 2. 4 使用XDoclet生成更復雜的工件
9. 2. 5 了解XDoclet任務和子任務
9. 2. 6有效地使用XDoclet
小結
第10章 交流與工具
10. 1 考察PetSoar開發(fā)
10. 2 管理不完善的交流
10. 2. 1 用一切可能的方法交流
10. 2. 2 使用源碼交流
10. 2. 3 使用交流作為學習的工具
10. 3 考察工具箱
10. 3. 1 源代碼配置管理--CVS
10. 3. 2 知識管理--WiKi
10. 3. 3 郵件目錄--Maio~omo
10. 3. 4 實時討論--IRC和即時消息
10. 3. 5 1DE-IDEA和Eclipse
10. 3. 6 問題追蹤和任務管理--JIRA
10. 4 使用連續(xù)集成
10. 5 把工具連接在一起
小結
第11章 省時工具
11. 1 了解實用組件
11. 2 了解OSCache
11. 2. 1 介紹SampleNews. com
11. 2. 2 使用LOOP測試
11. 2. 3 考察OSCache標識符庫
11. 2. 4 了解OSCache概念
11. 2. 5 緩存時間實例
11. 2. 6 查看高級的OSCache特征
11. 3 了解CommonsLang
11. 3. 1 考察最有用的類
11. 3. 2 使用Builder類
11. 4 了解Commons Collections
11. 5 了解Commons Logging
11. 5. 1 考察Commons Logging的優(yōu)點
11. 5. 2 一個簡單的實例
11. 6 了解Commons Digester
11. 6. 1 考察一個Digester實例
11. 6. 2 了解Digester規(guī)則
小結
第3部分 開發(fā)應用
第12章 建立開發(fā)環(huán)境
12. 1 在IDE內工作
12. 1. 1 問題:IDE不是自動化的
12. 1. 2 解決辦法:自動構建工具
12. 2 將Ant用于你全部的構建需要
12. 2. 1 問題:Ant不是萬靈藥
12. 2. 2 解決辦法:使用有意義的方法
12. 3 使用雜交處理方法
12. 4 組織你的項目
12. 4. 1 通過類型組織文件結構
12. 4. 2 通過部署組織文件結構
12. 4. 3 選擇一個結構
12. 4. 4 PetSoar怎樣
12. 5 管理單元測試
12. 5. 1 了解測試類型
12. 5. 2 考察測試小組. JUnit和批量測試
12. 6 使用版本控制
12. 7 部署PetSoar
小結
第13章 了解測試驅動開發(fā)
13. 1 為什么先測試
13. 1. 1 先測試與后測試
13. 1. 2 鎖定需求
13. 2 了解測試技術
13. 2. 1 將單元測試與代碼放在同一程序包中
13. 2. 2 從不跳過失敗的測試
13. 2. 3 使用模擬對象孤立無法測試部分
13. 2. 4 何時使用接口和類
13. 2. 5 保持簡潔
13. 2. 6 自頂向下工作
13. 2. 7 使用許多小的對象
13. 2. 8 保證測試組快速運行
13. 2. 9 避免靜態(tài)和單件
13. 3 測試TDD循環(huán)
13. 3. 1 使用TDD的實例場景
13. 3. 2 實例場景重訪
13. 3. 3 加強功能
小結
第14章 管理生命周期和組件依賴,
14. 1 了解組件和服務
14.
14. 2. 1 使用直接實例化
14. 2. 2 使用工廠
14. 2. 3 使用注冊
14. 2. 4 使用容器
14. 3 了解組件生命周期
14. 4 了解反轉控制
14. 4. 1 考察優(yōu)點
14. 4. 2 考察缺點
14. 5 了解分離關注點(Separation of Concerns)
14. 6 使用容器來定義范圍
14. 7 使用XWork的容器
14. 7. 1 配置容器
14. 7. 2 了解容器是如何工作的
14. 8 測試XWork組件
小結
第15章 定義域模型
15. 1 考慮域模型的優(yōu)勢
15. 2 處理層
15. 2. 1 層驅動與特性驅動方法的比較
15. 2. 2 選擇自底向上. 自頂向下. 中間分離
15. 3 確定當前的目標
15. 4 向店中添加一個寵物
15. 4. 1 使用Hibernate實現(xiàn)PersistenceManager
15. 4. 2 我們的進展
15. 5 檢索寵物
15. 5. 1 檢索一個單一的寵物
15. 5. 2我們的進展
15. 6 持續(xù)分類目錄
15. 6. 1 我們的進展
15. 6. 2 實現(xiàn)Category-Pet關聯(lián)
15. 6. 3 我們的進展
15. 7 考慮性能和可維護性
小結
第16章 創(chuàng)建基于Web的界面
16. 1 添加一個寵物
16. 1. 1 創(chuàng)建AddPet活動
16. 1. 2 為AddPet創(chuàng)建視圖
16. 1. 3 把全部連在一起試用
16. 2 顯示一個寵物
16. 2. 1 創(chuàng)建一個ViewPet活動
16. 2. 2 重構活動
16. 3 編輯寵物
16. 3. 1 檢查有效性
16. 3. 2 把全部連接在一起--第二次試用
16. 4 把寵物從這里拿走
16. 5 重構CRUD
16. 5. 1 消除在ViewPet和RemovePet中的重復
16. 5. 2 剩下的工作
16. 5. 3 完成最后一個重構
16. 5. 4 解耦驗證
16. 6 更換寵物
小結
第17章 定義導航. 布局. 視覺和感覺
17. 1 組件化窗口組件表單
17. 2 形成更美妙的視感和感覺
17. 3 使用樣式化風格
17. 4 導航到更好的用戶界面
小結
第18章 實現(xiàn)瀏覽和查詢功能
18. 1 定義應用需求
18. 2 瀏覽分類列表
18. 3 瀏覽寵物列表
18. 4 搜索商店中的寵物
18. 4. 1 實現(xiàn)LuceneSearcher
18. 4. 2 實現(xiàn)Lucenelndexer
18. 4. 3 進行到哪里了
18. 4. 4 查詢任何類型的數(shù)據(jù)
18. 4. 5 進行到哪里了
18. 4. 6 實現(xiàn)全文檢索
18. 4. 7實現(xiàn)分頁
18. 5 把它組裝起來
小結
第19章 增加購物車
19. 1 創(chuàng)建購物車
19. 2 創(chuàng)建WebWork活動
19. 3 購物車結賬
小結
第20章 保護應用
20. 1 理解J2EE安全模型
20. 2 簡化安全
20. 2. 1 使用HTTP請求包裝器
20. 2. 2 使用安全過濾器
20. 2. 3 使用登錄過濾器
20. 2. 4 在保護下工作
20. 3 使用更優(yōu)雅的方法
小結