《Spring 3.0就這么簡單》是人民郵電出版社2013年出版的圖書,作者是陳雄華、林開雄。該書主要講述了Spring 3.0的專業知識以及讀者應該掌握的相關專業技巧。
基本介紹
內容簡介,作者簡介,目錄,
內容簡介
《Spring 3.0就這么簡單》主要介紹了Spring 3.0的核心內容,不僅講解了Spring 3.0的基礎知識,還深入討論了Spring IoC容器、Spring AOP、使用Spring JDBC訪問資料庫、集成Hibernate、Spring的事務管理、Spring MVC、單元測試、敏捷開發技術等內容,幫助讀者快速入門並可以立刻使用Spring進行項目實戰。本書展示了如何使用Spring自己動手打造服務平台框架,並在本書的最後給出一個開發實戰案例。 《Spring 3.0就這么簡單》語言簡潔,實例豐富,可幫助讀者迅速掌握使用Spring 3.0進行開發所需的各種技能。《Spring 3.0就這么簡單》適合於具有一定Java編程基礎的讀者,以及在Java平台下進行各類軟體開發的開發人員和測試人員等。
作者簡介
陳雄華 畢業於廈門大學計算機與信息工程學院, 碩士。十年如一日, 鑽研技術, 傾心代碼, 對技術高峰身雖不能至,而心嚮往之。曾負責過十多個大型項目的設計和開發, 如企業級Java快速開發平台的研發和大型B2B電子商務網路的設計及開發。 技術開發之餘,常將實踐所得行諸於文字, 已在IBM developerworks、天極網、IT168及各報刊雜誌發表過數十篇技術文章。出版《精通JBuilder2005》、《精通Spring 3.x》等技術圖書,對雲計算、Oracle、Web客戶端技術感興趣。 林開雄 畢業於集美大學軟體工程專業, 資深軟體工程師, 精通Spring等優秀開源技術在企業中的套用,主要研究方向為業務基礎平台、BPM、智慧型報表、分散式等技術。
目錄
第1章 快速入門 1
1.1 Spring概述 1
1.1.1 認識Spring 1
1.1.2 Spring帶給我們什麼 2
1.1.3 Spring體系結構 3
1.2 實例功能概述 5
1.2.1 比Hello World更適用的實例 5
1.2.2 實例功能簡介 5
1.3 環境準備 7
1.3.1 創建庫表 7
1.3.2 建立工程 8
1.3.3 類包及Spring配置檔案規劃 12
1.4 持久層 13
1.4.1 建立領域對象 13
1.4.2 UserDao 14
1.4.3 LoginLogDao 17
1.4.4 在Spring中裝配DAO 17
1.5 業務層 19
1.5.1 UserService 19
1.5.2 在Spring中裝配Service 20
1.5.3 單元測試 21
1.6 展現層 23
1.6.1 配置Spring MVC框架 23
1.6.2 處理登錄請求 25
1.6.3 JSP視圖頁面 28
1.7 運行Web套用 29
1.8 小結 30
第2章 Spring IoC容器 31
2.1 IoC概述 32
2.2 BeanFactory和ApplicationContext 32
2.2.1 BeanFactory介紹 32
2.2.2 ApplicationContext介紹 33
2.2.3 資源載入 38
2.3 Bean裝配 39
2.3.1 Bean基本配置 40
2.3.2 依賴注入 42
2.3.3 注入參數詳解 47
2.3.4 Bean作用域 53
2.3.5 基於註解的配置 54
2.3.6 基於Java類的配置 59
2.3.7 不同配置方式比較 64
2.4 小結 65
第3章 Spring AOP 66
3.1 AOP概述 66
3.1.1 AOP到底是什麼 67
3.1.2 AOP術語 68
3.2 創建增強類 70
3.2.1 增強類型 70
3.2.2 前置增強 71
3.2.3 後置增強 74
3.2.4 環繞增強 75
3.2.5 異常拋出增強 76
3.3 創建切面 78
3.3.1 切點類型 79
3.3.2 切面類型 80
3.3.3 靜態普通方法名匹配切面 80
3.3.4 靜態正則表達式方法匹配切面 82
3.4 自動創建代理 85
3.4.1 實現類介紹 85
3.4.2 BeanNameAuto ProxyCreator 86
3.4.3 DefaultAdvisorAuto ProxyCreator 87
3.5 基於@AspectJ配置切面 88
3.5.1 @AspectJ語法基礎 88
3.5.2 使用前的準備 90
3.5.3 一個簡單的例子 91
3.5.4 如何通過配置使用@AspectJ切面 93
3.5.5 不同增強類型 93
3.6 基於Schema配置切面 95
3.6.1 一個簡單切面的配置 95
3.6.2 配置命名切點 96
3.6.3 各種增強類型的配置 97
3.6.4 綁定連線點信息 99
3.6.5 Advisor配置 100
3.7 各種切面類型總結 101
3.8 小結 102
第4章 使用Spring JDBC訪問資料庫 103
4.1 使用Spring JDBC 103
4.1.1 JdbcTemplate小試牛刀 104
4.1.2 在DAO中使用JdbcTemplate 104
4.2 基本的數據操作 106
4.2.1 更改數據 106
4.2.2 返回資料庫的表自增主鍵值 108
4.2.3 批量更改數據 110
4.2.4 查詢數據 111
4.2.5 查詢單值數據 114
4.2.6 調用存儲過程 116
4.3 BLOB/CLOB類型數據的操作 118
4.3.1 插入Lob類型的數據 118
4.3.2 以塊數據方式讀取Lob數據 120
4.3.3 以流數據方式讀取Lob數據 120
4.4 其他類型的JdbcTemplate 121
4.4.1 NamedParameterJdbcTemplate 121
4.4.2 SimpleJdbcTemplate 123
4.5 以OO方式訪問資料庫 123
4.5.1 使用MappingSqlQuery查詢數據 123
4.5.2 使用SqlUpdate更新數據 125
4.5.3 使用StoredProcedure執行存儲過程 126
4.5.4 SqlFunction類 127
4.7 小結 128
第5章 集成Hibernate 129
5.1 Spring整合ORM技術 129
5.2 在Spring中使用Hibernate 131
5.2.1 配置SessionFactory 131
5.2.2 使用HibernateTemplate 134
5.2.3 處理LOB類型數據 137
5.2.4 添加Hibernate事件監聽器 138
5.2.5 使用原生Hibernate API 139
5.2.6 使用註解配置 140
5.2.7 事務處理 141
5.2.8 延遲載入的問題 142
5.3 DAO層設計 143
5.3.1 DAO基類的設計 143
5.3.2 查詢接口方法的設計 145
5.3.3 分頁查詢接口設計 147
5.4 小結 148
第6章 Spring的事務管理 149
6.1 資料庫事務基礎知識 149
6.1.1 何為資料庫事務 149
6.1.2 JDBC對事務支持 150
6.2 Spring對事務管理的支持 152
6.2.1 事務管理關鍵抽象 152
6.2.2 Spring的事務管理器實現類 155
6.2.3 事務同步管理器 157
6.2.4 事務傳播行為 158
6.3 編程式的事務管理 159
6.4 使用XML配置聲明式事務 160
6.4.1 一個將被實施事務增強的服務接口 161
6.4.2 使用原始的TransactionProxyFactoryBean 162
6.4.3 基於tx/aop命名空間的配置 165
6.5 使用註解配置聲明式事務 167
6.5.1 使用@Transactional註解 167
6.5.2 通過AspectJ LTW引入事務切面 172
6.6 小結 173
第7章 Spring MVC 174
7.1 Spring MVC概述 174
7.1.1 體系結構 175
7.1.2 配置DispatcherServlet 176
7.2 註解驅動的控制器 178
7.2.1 使用@RequestMapping映射請求 178
7.2.2 請求處理方法簽名概述 182
7.2.3 處理方法簽名詳細說明 183
7.2.4 處理模型數據 186
7.3 數據校驗 191
7.3.1 Spring校驗框架 191
7.3.2 Spring MVC數據校驗 192
7.3.3 如何獲取校驗結果 193
7.3.4 如何在頁面中顯示錯誤 194
7.3.5 通過國際化資源顯示錯誤信息 196
7.4 視圖和視圖解析器 197
7.4.1 認識視圖 198
7.4.2 認識視圖解析器 199
7.4.3 JSP和JSTL 200
7.4.4 模板視圖 204
7.4.5 輸出XML 208
7.4.6 輸出JSON 208
7.4.7 使用XmlViewResolver 209
7.4.8 使用ResourceBundleViewResolver 209
7.4.9 混合使用多種視圖技術 210
7.5 本地化解析 213
7.5.1 本地化概述 213
7.5.2 使用CookieLocaleResolver 213
7.5.3 使用SessionLocaleResolver 214
7.5.4 使用LocaleChangeInterceptor 214
7.6 檔案上傳 215
7.6.1 配置MultipartResolver 215
7.6.2 編寫控制器和檔案上傳表單頁面 215
7.7 小結 216
第8章 單元測試
8.1 單元測試概述 217
8.1.1 為什麼需要單元測試 218
8.1.2 單元測試基本概念 219
8.2 TestNG快速進階 221
8.2.1 TestNG概述 221
8.2.2 TestNG生命周期 221
8.2.3 使用TestNG 222
8.3 模擬利器Mockito 226
8.3.1 模擬測試概述 226
8.3.2 創建Mock對象 227
8.3.3 設定Mock對象的期望行為及返回值 228
8.3.4 驗證互動行為 229
8.4 測試整合之王Unitils 230
8.4.1 Unitils概述 230
8.4.2 集成Spring 232
8.4.3 集成DbUnit 234
8.5 使用Unitils測試DAO層 234
8.5.1 Unitils配置 237
8.5.2 準備測試數據 238
8.5.3 編寫測試用例 240
8.7 使用Unitils測試Service層 242
8.8 測試Web層 246
8.8.1 對LoginController進行單元測試 247
8.8.2 使用Spring Servlet API模擬對象 248
8.8.3 使用Spring RestTemplate測試 249
8.9 小結 251
第9章 敏捷開發技術 253
9.1 敏捷開發概述 253
9.1.1 敏捷開發原則 254
9.1.2 敏捷開發過程 255
9.2 敏捷開發方法Scrum 258
9.3 測試驅動開發(TDD)實例 260
9.4 版本管理工具GIT 267
9.4.1 版本控制意義 267
9.4.2 SVN 267
9.4.3 GIT 268
9.5 代碼構建利器Maven 270
9.5.1 Maven概述 270
9.5.2 Maven入門 273
9.5.3 Maven實例 274
9.6 持續集成Hudson 278
9.7 小結 279
第10章 自己動手打造服務平台框架 280
10.1 服務平台概述 281
10.1.1 SOA實現技術 281
10.1.2 Web Service技術框架 282
10.1.3 技術框架的局限 282
10.1.4 TOP介紹 283
10.2 快速了解ROP 283
10.2.1 ROP概述 283
10.2.2 使用ROP開發一個服務 285
10.3 請求服務模型 291
10.3.1 傳統Web Service請求模型 291
10.3.2 ROP請求模型 292
10.3.3 參數數據綁定與校驗 294
10.3.4 XML和JSON參數綁定 296
10.3.5 自定義數據轉換器 299
10.3.6 請求服務映射 301
10.4 套用授權及驗證 303
10.4.1 套用鍵/套用密鑰 303
10.4.2 套用鍵/密鑰管理器 304
10.4.3 簽名算法 304
10.4.4 簽名功能控制 305
10.5 服務會話管理 307
10.5.1 會話管理概述 307
10.5.2 註冊會話管理器 307
10.5.3 開發登錄和退出服務 308
10.6 錯誤模型 309
10.6.1 錯誤模型概述 309
10.6.2 系統級主錯誤編碼 310
10.6.3 系統級子錯誤編碼 310
10.6.4 業務級子錯誤編碼 313
10.7 回響報文控制 315
10.7.1 分體式報文模型 315
10.7.2 回響報文定義 315
10.7.3 報文輸出格式 316
10.7.4 報文的國際化支持 316
10.8 檔案上傳 317
10.8.1 ROP檔案上傳解決思路 317
10.8.2 檔案上傳實例 319
10.8.3 檔案上傳控制 320
10.9 服務安全控制 320
10.9.1 安全控制架構 320
10.9.2 ServiceAccessController 321
10.9.3 InvokeTimesController 323
10.10 攔截器及事件體系 324
10.10.1 攔截器 324
10.10.2 事件及監聽 326
10.11 性能調優 327
10.11.1 服務平台執行緒池參數調整 328
10.11.2 限制服務的占用時長 328
10.11.3 限制套用/用戶的訪問 328
10.12 開發客戶端SDK 329
10.12.1 ROP提供了哪些支持 329
10.12.2 服務開放平台的SDK包 332
10.13 小結 333
第11章 實戰案例開發 334
11.1 景區網站案例概述 334
11.1.1 景區網站整體功能結構 334
11.1.2 景區網站用例描述 335
11.1.3 主要功能流程描述 336
11.2 系統設計 338
11.2.1 技術框架選擇 338
11.2.2 Web目錄結構及類包結構規劃 338
11.2.3 單元測試類包結構規劃 339
11.2.4 系統的頁面互動流程設計 340
11.2.5 PO類設計 340
11.2.6 持久層設計 341
11.2.7 服務層設計 342
11.2.8 Web層設計 342
11.2.9 資料庫設計 343
11.3 開發前的準備 345
11.4 持久層開發 345
11.4.1 PO類 345
11.4.2 DAO基類 349
11.4.3 通過擴展基類定義DAO類 350
11.4.4 DAO Bean的裝配 351
11.4.5 使用Hibernate二級快取 353
11.5 對持久層進行測試 355
11.5.1 配置Unitils測試環境 355
11.5.2 準備測試資料庫及測試數據 356
11.5.3 編寫DAO測試基類 356
11.5.4 編寫ViewSpaceDao測試用例 357
11.6 服務層開發 359
11.6.1 ViewSpaceService的開發 359
11.6.2 服務類Bean的裝配 361
11.7 對服務層進行測試 363
11.7.1 編寫Service測試基類 363
11.7.2 編寫ViewSpaceService測試用例 363
11.8 Web層開發 365
11.8.1 BaseController的基類 365
11.8.2 景區網站首頁 367
11.8.3 景區查詢 370
11.8.4 景區詳細信息的頁面 371
11.8.5 web.xml配置 373
11.8.6 Spring MVC配置 375
11.9 對Web層進行測試 376
11.9.1 編寫Web測試基類 376
11.9.2 編寫ViewManageControllerTest測試用例 377
11.10 部署和運行套用 379
11.11 小結 380
1.1 Spring概述 1
1.1.1 認識Spring 1
1.1.2 Spring帶給我們什麼 2
1.1.3 Spring體系結構 3
1.2 實例功能概述 5
1.2.1 比Hello World更適用的實例 5
1.2.2 實例功能簡介 5
1.3 環境準備 7
1.3.1 創建庫表 7
1.3.2 建立工程 8
1.3.3 類包及Spring配置檔案規劃 12
1.4 持久層 13
1.4.1 建立領域對象 13
1.4.2 UserDao 14
1.4.3 LoginLogDao 17
1.4.4 在Spring中裝配DAO 17
1.5 業務層 19
1.5.1 UserService 19
1.5.2 在Spring中裝配Service 20
1.5.3 單元測試 21
1.6 展現層 23
1.6.1 配置Spring MVC框架 23
1.6.2 處理登錄請求 25
1.6.3 JSP視圖頁面 28
1.7 運行Web套用 29
1.8 小結 30
第2章 Spring IoC容器 31
2.1 IoC概述 32
2.2 BeanFactory和ApplicationContext 32
2.2.1 BeanFactory介紹 32
2.2.2 ApplicationContext介紹 33
2.2.3 資源載入 38
2.3 Bean裝配 39
2.3.1 Bean基本配置 40
2.3.2 依賴注入 42
2.3.3 注入參數詳解 47
2.3.4 Bean作用域 53
2.3.5 基於註解的配置 54
2.3.6 基於Java類的配置 59
2.3.7 不同配置方式比較 64
2.4 小結 65
第3章 Spring AOP 66
3.1 AOP概述 66
3.1.1 AOP到底是什麼 67
3.1.2 AOP術語 68
3.2 創建增強類 70
3.2.1 增強類型 70
3.2.2 前置增強 71
3.2.3 後置增強 74
3.2.4 環繞增強 75
3.2.5 異常拋出增強 76
3.3 創建切面 78
3.3.1 切點類型 79
3.3.2 切面類型 80
3.3.3 靜態普通方法名匹配切面 80
3.3.4 靜態正則表達式方法匹配切面 82
3.4 自動創建代理 85
3.4.1 實現類介紹 85
3.4.2 BeanNameAuto ProxyCreator 86
3.4.3 DefaultAdvisorAuto ProxyCreator 87
3.5 基於@AspectJ配置切面 88
3.5.1 @AspectJ語法基礎 88
3.5.2 使用前的準備 90
3.5.3 一個簡單的例子 91
3.5.4 如何通過配置使用@AspectJ切面 93
3.5.5 不同增強類型 93
3.6 基於Schema配置切面 95
3.6.1 一個簡單切面的配置 95
3.6.2 配置命名切點 96
3.6.3 各種增強類型的配置 97
3.6.4 綁定連線點信息 99
3.6.5 Advisor配置 100
3.7 各種切面類型總結 101
3.8 小結 102
第4章 使用Spring JDBC訪問資料庫 103
4.1 使用Spring JDBC 103
4.1.1 JdbcTemplate小試牛刀 104
4.1.2 在DAO中使用JdbcTemplate 104
4.2 基本的數據操作 106
4.2.1 更改數據 106
4.2.2 返回資料庫的表自增主鍵值 108
4.2.3 批量更改數據 110
4.2.4 查詢數據 111
4.2.5 查詢單值數據 114
4.2.6 調用存儲過程 116
4.3 BLOB/CLOB類型數據的操作 118
4.3.1 插入Lob類型的數據 118
4.3.2 以塊數據方式讀取Lob數據 120
4.3.3 以流數據方式讀取Lob數據 120
4.4 其他類型的JdbcTemplate 121
4.4.1 NamedParameterJdbcTemplate 121
4.4.2 SimpleJdbcTemplate 123
4.5 以OO方式訪問資料庫 123
4.5.1 使用MappingSqlQuery查詢數據 123
4.5.2 使用SqlUpdate更新數據 125
4.5.3 使用StoredProcedure執行存儲過程 126
4.5.4 SqlFunction類 127
4.7 小結 128
第5章 集成Hibernate 129
5.1 Spring整合ORM技術 129
5.2 在Spring中使用Hibernate 131
5.2.1 配置SessionFactory 131
5.2.2 使用HibernateTemplate 134
5.2.3 處理LOB類型數據 137
5.2.4 添加Hibernate事件監聽器 138
5.2.5 使用原生Hibernate API 139
5.2.6 使用註解配置 140
5.2.7 事務處理 141
5.2.8 延遲載入的問題 142
5.3 DAO層設計 143
5.3.1 DAO基類的設計 143
5.3.2 查詢接口方法的設計 145
5.3.3 分頁查詢接口設計 147
5.4 小結 148
第6章 Spring的事務管理 149
6.1 資料庫事務基礎知識 149
6.1.1 何為資料庫事務 149
6.1.2 JDBC對事務支持 150
6.2 Spring對事務管理的支持 152
6.2.1 事務管理關鍵抽象 152
6.2.2 Spring的事務管理器實現類 155
6.2.3 事務同步管理器 157
6.2.4 事務傳播行為 158
6.3 編程式的事務管理 159
6.4 使用XML配置聲明式事務 160
6.4.1 一個將被實施事務增強的服務接口 161
6.4.2 使用原始的TransactionProxyFactoryBean 162
6.4.3 基於tx/aop命名空間的配置 165
6.5 使用註解配置聲明式事務 167
6.5.1 使用@Transactional註解 167
6.5.2 通過AspectJ LTW引入事務切面 172
6.6 小結 173
第7章 Spring MVC 174
7.1 Spring MVC概述 174
7.1.1 體系結構 175
7.1.2 配置DispatcherServlet 176
7.2 註解驅動的控制器 178
7.2.1 使用@RequestMapping映射請求 178
7.2.2 請求處理方法簽名概述 182
7.2.3 處理方法簽名詳細說明 183
7.2.4 處理模型數據 186
7.3 數據校驗 191
7.3.1 Spring校驗框架 191
7.3.2 Spring MVC數據校驗 192
7.3.3 如何獲取校驗結果 193
7.3.4 如何在頁面中顯示錯誤 194
7.3.5 通過國際化資源顯示錯誤信息 196
7.4 視圖和視圖解析器 197
7.4.1 認識視圖 198
7.4.2 認識視圖解析器 199
7.4.3 JSP和JSTL 200
7.4.4 模板視圖 204
7.4.5 輸出XML 208
7.4.6 輸出JSON 208
7.4.7 使用XmlViewResolver 209
7.4.8 使用ResourceBundleViewResolver 209
7.4.9 混合使用多種視圖技術 210
7.5 本地化解析 213
7.5.1 本地化概述 213
7.5.2 使用CookieLocaleResolver 213
7.5.3 使用SessionLocaleResolver 214
7.5.4 使用LocaleChangeInterceptor 214
7.6 檔案上傳 215
7.6.1 配置MultipartResolver 215
7.6.2 編寫控制器和檔案上傳表單頁面 215
7.7 小結 216
第8章 單元測試
8.1 單元測試概述 217
8.1.1 為什麼需要單元測試 218
8.1.2 單元測試基本概念 219
8.2 TestNG快速進階 221
8.2.1 TestNG概述 221
8.2.2 TestNG生命周期 221
8.2.3 使用TestNG 222
8.3 模擬利器Mockito 226
8.3.1 模擬測試概述 226
8.3.2 創建Mock對象 227
8.3.3 設定Mock對象的期望行為及返回值 228
8.3.4 驗證互動行為 229
8.4 測試整合之王Unitils 230
8.4.1 Unitils概述 230
8.4.2 集成Spring 232
8.4.3 集成DbUnit 234
8.5 使用Unitils測試DAO層 234
8.5.1 Unitils配置 237
8.5.2 準備測試數據 238
8.5.3 編寫測試用例 240
8.7 使用Unitils測試Service層 242
8.8 測試Web層 246
8.8.1 對LoginController進行單元測試 247
8.8.2 使用Spring Servlet API模擬對象 248
8.8.3 使用Spring RestTemplate測試 249
8.9 小結 251
第9章 敏捷開發技術 253
9.1 敏捷開發概述 253
9.1.1 敏捷開發原則 254
9.1.2 敏捷開發過程 255
9.2 敏捷開發方法Scrum 258
9.3 測試驅動開發(TDD)實例 260
9.4 版本管理工具GIT 267
9.4.1 版本控制意義 267
9.4.2 SVN 267
9.4.3 GIT 268
9.5 代碼構建利器Maven 270
9.5.1 Maven概述 270
9.5.2 Maven入門 273
9.5.3 Maven實例 274
9.6 持續集成Hudson 278
9.7 小結 279
第10章 自己動手打造服務平台框架 280
10.1 服務平台概述 281
10.1.1 SOA實現技術 281
10.1.2 Web Service技術框架 282
10.1.3 技術框架的局限 282
10.1.4 TOP介紹 283
10.2 快速了解ROP 283
10.2.1 ROP概述 283
10.2.2 使用ROP開發一個服務 285
10.3 請求服務模型 291
10.3.1 傳統Web Service請求模型 291
10.3.2 ROP請求模型 292
10.3.3 參數數據綁定與校驗 294
10.3.4 XML和JSON參數綁定 296
10.3.5 自定義數據轉換器 299
10.3.6 請求服務映射 301
10.4 套用授權及驗證 303
10.4.1 套用鍵/套用密鑰 303
10.4.2 套用鍵/密鑰管理器 304
10.4.3 簽名算法 304
10.4.4 簽名功能控制 305
10.5 服務會話管理 307
10.5.1 會話管理概述 307
10.5.2 註冊會話管理器 307
10.5.3 開發登錄和退出服務 308
10.6 錯誤模型 309
10.6.1 錯誤模型概述 309
10.6.2 系統級主錯誤編碼 310
10.6.3 系統級子錯誤編碼 310
10.6.4 業務級子錯誤編碼 313
10.7 回響報文控制 315
10.7.1 分體式報文模型 315
10.7.2 回響報文定義 315
10.7.3 報文輸出格式 316
10.7.4 報文的國際化支持 316
10.8 檔案上傳 317
10.8.1 ROP檔案上傳解決思路 317
10.8.2 檔案上傳實例 319
10.8.3 檔案上傳控制 320
10.9 服務安全控制 320
10.9.1 安全控制架構 320
10.9.2 ServiceAccessController 321
10.9.3 InvokeTimesController 323
10.10 攔截器及事件體系 324
10.10.1 攔截器 324
10.10.2 事件及監聽 326
10.11 性能調優 327
10.11.1 服務平台執行緒池參數調整 328
10.11.2 限制服務的占用時長 328
10.11.3 限制套用/用戶的訪問 328
10.12 開發客戶端SDK 329
10.12.1 ROP提供了哪些支持 329
10.12.2 服務開放平台的SDK包 332
10.13 小結 333
第11章 實戰案例開發 334
11.1 景區網站案例概述 334
11.1.1 景區網站整體功能結構 334
11.1.2 景區網站用例描述 335
11.1.3 主要功能流程描述 336
11.2 系統設計 338
11.2.1 技術框架選擇 338
11.2.2 Web目錄結構及類包結構規劃 338
11.2.3 單元測試類包結構規劃 339
11.2.4 系統的頁面互動流程設計 340
11.2.5 PO類設計 340
11.2.6 持久層設計 341
11.2.7 服務層設計 342
11.2.8 Web層設計 342
11.2.9 資料庫設計 343
11.3 開發前的準備 345
11.4 持久層開發 345
11.4.1 PO類 345
11.4.2 DAO基類 349
11.4.3 通過擴展基類定義DAO類 350
11.4.4 DAO Bean的裝配 351
11.4.5 使用Hibernate二級快取 353
11.5 對持久層進行測試 355
11.5.1 配置Unitils測試環境 355
11.5.2 準備測試資料庫及測試數據 356
11.5.3 編寫DAO測試基類 356
11.5.4 編寫ViewSpaceDao測試用例 357
11.6 服務層開發 359
11.6.1 ViewSpaceService的開發 359
11.6.2 服務類Bean的裝配 361
11.7 對服務層進行測試 363
11.7.1 編寫Service測試基類 363
11.7.2 編寫ViewSpaceService測試用例 363
11.8 Web層開發 365
11.8.1 BaseController的基類 365
11.8.2 景區網站首頁 367
11.8.3 景區查詢 370
11.8.4 景區詳細信息的頁面 371
11.8.5 web.xml配置 373
11.8.6 Spring MVC配置 375
11.9 對Web層進行測試 376
11.9.1 編寫Web測試基類 376
11.9.2 編寫ViewManageControllerTest測試用例 377
11.10 部署和運行套用 379
11.11 小結 380