定 價:¥128.00
作 者: | 李剛 著 |
出版社: | 電子工業(yè)出版社 |
叢編項: | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787121337161 | 出版時間: | 2018-03-01 | 包裝: | |
開本: | 頁數(shù): | 字?jǐn)?shù): |
第1章 Java EE應(yīng)用和開發(fā)環(huán)境 1
1.1 Java EE應(yīng)用概述 2
1.1.1 Java EE應(yīng)用的分層模型 2
1.1.2 Java EE應(yīng)用的組件 3
1.1.3 Java EE應(yīng)用的結(jié)構(gòu)和優(yōu)勢 4
1.1.4 常用的Java EE服務(wù)器 4
1.2 輕量級Java EE應(yīng)用相關(guān)技術(shù) 5
1.2.1 JSP、Servlet 3.x和JavaBean及替代技術(shù) 5
1.2.2 Struts 2.5及替代技術(shù) 5
1.2.3 Hibernate 5.2及替代技術(shù) 6
1.2.4 Spring 5.0及替代技術(shù) 6
1.3 Tomcat的下載和安裝 7
1.3.1 安裝Tomcat服務(wù)器 8
1.3.2 配置Tomcat的服務(wù)端口 9
1.3.3 進入控制臺 9
1.3.4 部署Web應(yīng)用 12
1.3.5 配置Tomcat的數(shù)據(jù)源 12
1.4 Eclipse的安裝和使用 14
1.4.1 Eclipse的下載和安裝 14
1.4.2 在線安裝Eclipse插件 15
1.4.3 從本地壓縮包安裝插件 17
1.4.4 手動安裝Eclipse插件 17
1.4.5 使用Eclipse開發(fā)Java EE應(yīng)用 17
1.4.6 導(dǎo)入Eclipse項目 20
1.4.7 導(dǎo)入非Eclipse項目 21
1.5 Ant的安裝和使用 22
1.5.1 Ant的下載和安裝 23
1.5.2 使用Ant工具 23
1.5.3 定義生成文件 25
1.5.4 Ant的任務(wù)(task) 29
1.6 Maven的安裝和使用 31
1.6.1 下載和安裝Maven 31
1.6.2 設(shè)置Maven 32
1.6.3 創(chuàng)建、構(gòu)建簡單的項目 33
1.6.4 Maven的核心概念 36
1.6.5 依賴管理 41
1.6.6 POM文件的元素 43
1.7 使用SVN進行協(xié)作開發(fā) 44
1.7.1 下載和安裝SVN服務(wù)器 45
1.7.2 配置SVN資源庫 45
1.7.3 下載和安裝SVN客戶端 47
1.7.4 將項目發(fā)布到服務(wù)器 47
1.7.5 從服務(wù)器下載項目 48
1.7.6 提交(Commit)修改 48
1.7.7 同步(Update)本地文件 48
1.7.8 添加文件和 49
1.7.9 刪除文件和 50
1.7.10 查看文件或的版本變革 50
1.7.11 從以前版本重新開始 50
1.7.12 創(chuàng)建分支 51
1.7.13 沿著分支開發(fā) 51
1.7.14 合并分支 52
1.7.15 使用Eclipse作為SVN客戶端 52
1.8 使用Git進行軟件配置管理(SCM) 55
1.8.1 下載和安裝Git、TortoiseGit 56
1.8.2 創(chuàng)建本地資源庫 58
1.8.3 添加(Add)文件和 59
1.8.4 提交(Commit)修改 60
1.8.5 查看文件或的版本變更 61
1.8.6 刪除文件和 62
1.8.7 從以前版本重新開始 62
1.8.8 克?。–lone)項目 63
1.8.9 創(chuàng)建分支 64
1.8.10 沿著分支開發(fā) 64
1.8.11 合并分支 65
1.8.12 使用Eclipse作為Git客戶端 65
1.8.13 配置遠程中央資源庫 67
1.8.14 推送(Push)項目 69
1.8.15 獲?。‵etch)項目和拉?。≒ull)項目 70
1.9 本章小結(jié) 72
第2章 JSP/Servlet及相關(guān)技術(shù)詳解 73
2.1 Web應(yīng)用和web.xml文件 74
2.1.1 構(gòu)建Web應(yīng)用 74
2.1.2 配置描述符web.xml 75
2.2 JSP的基本原理 76
2.3 JSP的4種基本語法 80
2.3.1 JSP注釋 80
2.3.2 JSP聲明 81
2.3.3 JSP輸出表達式 82
2.3.4 JSP小腳本 83
2.4 JSP的3個編譯指令 85
2.4.1 page指令 85
2.4.2 include指令 89
2.5 JSP的7個動作指令 90
2.5.1 forward指令 90
2.5.2 include指令 92
2.5.3 useBean、setProperty、getProperty指令 93
2.5.4 plugin指令 96
2.5.5 param指令 96
2.6 JSP腳本中的9個內(nèi)置對象 96
2.6.1 application對象 98
2.6.2 config對象 103
2.6.3 exception對象 105
2.6.4 out對象 107
2.6.5 pageContext對象 108
2.6.6 request對象 109
2.6.7 response對象 116
2.6.8 session對象 120
2.7 Servlet介紹 122
2.7.1 Servlet的開發(fā) 122
2.7.2 Servlet的配置 124
2.7.3 JSP/Servlet的生命周期 125
2.7.4 load-on-startup Servlet 126
2.7.5 訪問Servlet的配置參數(shù) 127
2.7.6 使用Servlet作為控制器 129
2.8 JSP 2的自定義標(biāo)簽 133
2.8.1 開發(fā)自定義標(biāo)簽類 133
2.8.2 建立TLD文件 134
2.8.3 使用標(biāo)簽庫 135
2.8.4 帶屬性的標(biāo)簽 136
2.8.5 帶標(biāo)簽體的標(biāo)簽 139
2.8.6 以頁面片段作為屬性的標(biāo)簽 141
2.8.7 動態(tài)屬性的標(biāo)簽 143
2.9 Filter介紹 144
2.9.1 創(chuàng)建Filter類 145
2.9.2 配置Filter 146
2.9.3 使用URL Rewrite實現(xiàn)網(wǎng)站偽靜態(tài) 149
2.10 Listener介紹 150
2.10.1 實現(xiàn)Listener類 151
2.10.2 配置Listener 152
2.10.3 使用ServletContextAttributeListener 153
2.10.4 使用ServletRequestListener和ServletRequestAttributeListener 154
2.10.5 使用HttpSessionListener和HttpSessionAttributeListener 155
2.11 JSP 2特性 160
2.11.1 配置JSP屬性 160
2.11.2 表達式語言 162
2.11.3 Tag File支持 170
2.12 Servlet 3新特性 172
2.12.1 Servlet 3的注解 172
2.12.2 Servlet 3的Web模塊支持 172
2.12.3 Servlet 3提供的異步處理 174
2.12.4 改進的Servlet API 177
2.13 Servlet 3.1新增的非阻塞式IO 180
2.14 Tomcat 8.5的WebSocket支持 182
2.15 本章小結(jié) 187
第3章 Struts 2的基本用法 188
3.1 MVC思想概述 189
3.1.1 傳統(tǒng)Model 1和Model 2 189
3.1.2 MVC思想及其優(yōu)勢 190
3.2 Struts 2的下載和安裝 191
3.2.1 為Web應(yīng)用增加Struts 2支持 191
3.2.2 在Eclipse中使用Struts 2 192
3.2.3 增加登錄處理 193
3.3 Struts 2的流程 196
3.3.1 Struts 2應(yīng)用的開發(fā)步驟 196
3.3.2 Struts 2的運行流程 197
3.4 Struts 2的常規(guī)配置 198
3.4.1 常量配置 198
3.4.2 包含其他配置文件 204
3.5 實現(xiàn)Action 204
3.5.1 Action接口和ActionSupport基類 206
3.5.2 Action訪問Servlet API 208
3.5.3 Action直接訪問Servlet API 210
3.5.4 使用ServletActionContext訪問Servlet API 212
3.6 配置Action 212
3.6.1 包和命名空間 213
3.6.2 Action的基本配置 216
3.6.3 使用Action的動態(tài)方法調(diào)用 217
3.6.4 指定method屬性及使用通配符 219
3.6.5 配置默認Action 224
3.6.6 配置Action的默認處理類 225
3.7 配置處理結(jié)果 225
3.7.1 理解處理結(jié)果 225
3.7.2 配置結(jié)果 226
3.7.3 Struts 2支持的結(jié)果類型 227
3.7.4 plainText結(jié)果類型 229
3.7.5 redirect結(jié)果類型 230
3.7.6 redirectAction結(jié)果類型 231
3.7.7 動態(tài)結(jié)果 232
3.7.8 Action屬性值決定物理視圖資源 232
3.7.9 全局結(jié)果 234
3.7.10 使用PreResultListener 235
3.8 配置Struts 2的異常處理 236
3.8.1 Struts 2的異常處理機制 236
3.8.2 聲明式異常捕捉 238
3.8.3 輸出異常信息 239
3.9 Convention插件與“約定”支持 240
3.9.1 Action的搜索和映射約定 241
3.9.2 按約定映射Result 243
3.9.3 Action鏈的約定 246
3.9.4 自動重加載映射 247
3.9.5 Convention插件的相關(guān)常量 247
3.9.6 Convention插件相關(guān)注解 248
3.10 使用Struts 2的國際化 248
3.10.1 視圖頁面的國際化 249
3.10.2 Action的國際化 250
3.10.3 使用包范圍的國際化資源 251
3.10.4 使用全局國際化資源 252
3.10.5 輸出帶占位符的國際化消息 254
3.10.6 加載資源文件的順序 256
3.11 使用Struts 2的標(biāo)簽庫 256
3.11.1 Struts 2標(biāo)簽庫概述 256
3.11.2 使用Struts 2標(biāo)簽 257
3.11.3 Struts 2的OGNL表達式語言 258
3.11.4 OGNL中的集合操作 260
3.11.5 訪問靜態(tài)成員 261
3.11.6 Lambda(?)表達式 261
3.11.7 控制標(biāo)簽 262
3.11.8 數(shù)據(jù)標(biāo)簽 271
3.11.9 主題和模板 279
3.11.10 自定義主題 281
3.11.11 表單標(biāo)簽 282
3.11.12 非表單標(biāo)簽 294
3.12 本章小結(jié) 297
第4章 深入使用Struts 2 298
4.1 詳解Struts 2的類型轉(zhuǎn)換 299
4.1.1 Struts 2內(nèi)建的類型轉(zhuǎn)換器 299
4.1.2 基于OGNL的類型轉(zhuǎn)換 300
4.1.3 指定集合元素的類型 302
4.1.4 自定義類型轉(zhuǎn)換器 304
4.1.5 注冊類型轉(zhuǎn)換器 306
4.1.6 基于Struts 2的自定義類型轉(zhuǎn)換器 308
4.1.7 處理Set集合 308
4.1.8 類型轉(zhuǎn)換中的錯誤處理 311
4.2 使用Struts 2的輸入校驗 316
4.2.1 編寫校驗規(guī)則文件 316
4.2.2 國際化提示信息 319
4.2.3 使用客戶端校驗 320
4.2.4 字段校驗器配置風(fēng)格 321
4.2.5 非字段校驗器配置風(fēng)格 322
4.2.6 短路校驗器 324
4.2.7 校驗文件的搜索規(guī)則 325
4.2.8 校驗順序和短路 327
4.2.9 內(nèi)建校驗器 327
4.2.10 基于注解的輸入校驗 337
4.2.11 手動完成輸入校驗 339
4.3 使用Struts 2控制文件上傳 342
4.3.1 Struts 2的文件上傳 342
4.3.2 實現(xiàn)文件上傳的Action 343
4.3.3 配置文件上傳的Action 345
4.3.4 手動實現(xiàn)文件過濾 347
4.3.5 攔截器實現(xiàn)文件過濾 348
4.3.6 輸出錯誤提示 349
4.3.7 文件上傳的常量配置 350
4.4 使用Struts 2控制文件下載 351
4.4.1 實現(xiàn)文件下載的Action 351
4.4.2 配置Action 352
4.4.3 下載前的授權(quán)控制 352
4.5 詳解Struts 2的攔截器機制 353
4.5.1 攔截器在Struts 2中的作用 354
4.5.2 Struts 2內(nèi)建的攔截器 354
4.5.3 配置攔截器 356
4.5.4 使用攔截器的配置語法 357
4.5.5 配置默認攔截器 358
4.5.6 實現(xiàn)攔截器類 360
4.5.7 使用攔截器 361
4.5.8 攔截方法的攔截器 362
4.5.9 攔截器的執(zhí)行順序 365
4.5.10 攔截結(jié)果的監(jiān)聽器 366
4.5.11 覆蓋攔截器棧里特定攔截器的參數(shù) 367
4.5.12 使用攔截器完成權(quán)限控制 368
4.6 使用Struts 2的Ajax支持 370
4.6.1 使用stream類型的Result實現(xiàn)Ajax 370
4.6.2 JSON的基本知識 372
4.6.3 實現(xiàn)Action邏輯 375
4.6.4 JSON插件與json類型的Result 376
4.6.5 實現(xiàn)JSP頁面 377
4.7 本章小結(jié) 378
第5章 Hibernate的基本用法 380
5.1 ORM和Hibernate 381
5.1.1 對象/關(guān)系數(shù)據(jù)庫映射(ORM) 381
5.1.2 基本映射方式 382
5.1.3 流行的ORM框架簡介 383
5.1.4 Hibernate概述 383
5.2 Hibernate入門 384
5.2.1 Hibernate下載和安裝 384
5.2.2 Hibernate的數(shù)據(jù)庫操作 385
5.2.3 在Eclipse中使用Hibernate 389
5.3 Hibernate的體系結(jié)構(gòu) 392
5.4 深入Hibernate配置文件 393
5.4.1 創(chuàng)建Configuration對象 393
5.4.2 hibernate.properties文件與hibernate.cfg.xml文件 396
5.4.3 JDBC連接屬性 396
5.4.4 數(shù)據(jù)庫方言 397
5.4.5 JNDI數(shù)據(jù)源的連接屬性 398
5.4.6 Hibernate事務(wù)屬性 399
5.4.7 二級緩存相關(guān)屬性 399
5.4.8 外連接抓取屬性 399
5.4.9 其他常用的配置屬性 400
5.5 深入理解持久化對象 400
5.5.1 持久化類的要求 400
5.5.2 持久化對象的狀態(tài) 401
5.5.3 改變持久化對象狀態(tài)的方法 402
5.6 深入Hibernate映射 405
5.6.1 映射屬性 407
5.6.2 映射主鍵 415
5.6.3 使用Hibernate的主鍵生成器 417
5.6.4 映射集合屬性 418
5.6.5 集合屬性的性能分析 424
5.6.6 有序集合映射 426
5.6.7 映射數(shù)據(jù)庫對象 427
5.7 映射組件屬性 430
5.7.1 組件屬性為集合 432
5.7.2 集合屬性的元素為組件 433
5.7.3 組件作為Map的索引 434
5.7.4 組件作為復(fù)合主鍵 436
5.7.5 多列作為聯(lián)合主鍵 438
5.8 使用傳統(tǒng)的映射文件 439
5.8.1 增加XML映射文件 439
5.8.2 注解,還是XML映射文件 441
5.9 本章小結(jié) 442
第6章 深入使用Hibernate與JPA 443
6.1 Hibernate的關(guān)聯(lián)映射 444
6.1.1 單向N-1關(guān)聯(lián) 444
6.1.2 單向1-1關(guān)聯(lián) 449
6.1.3 單向1-N關(guān)聯(lián) 450
6.1.4 單向N-N關(guān)聯(lián) 453
6.1.5 雙向1-N關(guān)聯(lián) 455
6.1.6 雙向N-N關(guān)聯(lián) 458
6.1.7 雙向1-1關(guān)聯(lián) 459
6.1.8 組件屬性包含的關(guān)聯(lián)實體 461
6.1.9 基于復(fù)合主鍵的關(guān)聯(lián)關(guān)系 463
6.1.10 復(fù)合主鍵的成員屬性為關(guān)聯(lián)實體 464
6.1.11 持久化的傳播性 467
6.2 繼承映射 468
6.2.1 整個類層次對應(yīng)一個表的映射策略 470
6.2.2 連接子類的映射策略 472
6.2.3 每個具體類對應(yīng)一個表的映射策略 475
6.3 批量處理策略 477
6.3.1 批量插入 477
6.3.2 JPA與Hibernate 478
6.3.3 JPA的批量插入 479
6.3.4 批量更新 481
6.3.5 DML風(fēng)格的批量更新/刪除 481
6.3.6 JPA的DML支持 482
6.4 HQL查詢和JPQL查詢 483
6.4.1 HQL查詢 483
6.4.2 JPQL查詢 485
6.4.3 from子句 487
6.4.4 關(guān)聯(lián)和連接 487
6.4.5 查詢的select子句 490
6.4.6 HQL查詢的聚集函數(shù) 491
6.4.7 多態(tài)查詢 491
6.4.8 HQL查詢的where子句 492
6.4.9 表達式 493
6.4.10 order by子句 495
6.4.11 group by子句 495
6.4.12 子查詢 495
6.4.13 命名查詢 496
6.5 動態(tài)條件查詢 497
6.5.1 執(zhí)行DML語句 501
6.5.2 select的用法 502
6.5.3 元組查詢 503
6.5.4 多Root查詢 504
6.5.5 關(guān)聯(lián)和動態(tài)關(guān)聯(lián) 505
6.5.6 分組、聚集和排序 508
6.6 原生SQL查詢 510
6.6.1 標(biāo)量查詢 510
6.6.2 實體查詢 511
6.6.3 處理關(guān)聯(lián)和繼承 514
6.6.4 命名SQL查詢 515
6.6.5 調(diào)用存儲過程 517
6.6.6 使用定制SQL 518
6.6.7 JPA的原生SQL查詢 520
6.7 數(shù)據(jù)過濾 524
6.8 事務(wù)控制 526
6.8.1 事務(wù)的概念 527
6.8.2 Session與事務(wù) 527
6.8.3 上下文相關(guān)的Session 529
6.9 二級緩存和查詢緩存 530
6.9.1 開啟二級緩存 530
6.9.2 管理緩存和統(tǒng)計緩存 533
6.9.3 使用查詢緩存 534
6.10 事件機制 537
6.10.1 攔截器 537
6.10.2 事件系統(tǒng) 539
6.11 本章小結(jié) 541
第7章 Spring的基本用法 542
7.1 Spring簡介和Spring 5.0的變化 543
7.1.1 Spring簡介 543
7.1.2 Spring 5.0的變化 544
7.2 Spring入門 544
7.2.1 Spring下載和安裝 544
7.2.2 使用Spring管理Bean 545
7.2.3 在Eclipse中使用Spring 548
7.3 Spring的核心機制:依賴注入 551
7.3.1 理解依賴注入 552
7.3.2 設(shè)值注入 553
7.3.3 構(gòu)造注入 557
7.3.4 兩種注入方式的對比 558
7.4 使用Spring容器 559
7.4.1 Spring容器 559
7.4.2 使用ApplicationContext 560
7.4.3 ApplicationContext的國際化支持 562
7.4.4 ApplicationContext的事件機制 563
7.4.5 讓Bean獲取Spring容器 566
7.5 Spring容器中的Bean 568
7.5.1 Bean的基本定義和Bean別名 568
7.5.2 容器中Bean的作用域 569
7.5.3 配置依賴 572
7.5.4 設(shè)置普通屬性值 574
7.5.5 配置合作者Bean 575
7.5.6 使用自動裝配注入合作者Bean 575
7.5.7 注入嵌套Bean 578
7.5.8 注入集合值 579
7.5.9 組合屬性 583
7.5.10 Spring的Bean和JavaBean 584
7.6 Spring提供的Java配置管理 585
7.7 創(chuàng)建Bean的3種方式 588
7.7.1 使用構(gòu)造器創(chuàng)建Bean實例 588
7.7.2 使用靜態(tài)工廠方法創(chuàng)建Bean 589
7.7.3 調(diào)用實例工廠方法創(chuàng)建Bean 591
7.8 深入理解容器中的Bean 593
7.8.1 抽象Bean與子Bean 593
7.8.2 Bean繼承與Java繼承的區(qū)別 595
7.8.3 容器中的工廠Bean 595
7.8.4 獲得Bean本身的id 597
7.8.5 強制初始化Bean 598
7.9 容器中Bean的生命周期 598
7.9.1 依賴關(guān)系注入之后的行為 599
7.9.2 Bean銷毀之前的行為 601
7.9.3 協(xié)調(diào)作用域不同步的Bean 603
7.10 高級依賴關(guān)系配置 606
7.10.1 獲取其他Bean的屬性值 607
7.10.2 獲取Field值 609
7.10.3 獲取方法返回值 611
7.11 基于XML Schema的簡化配置方式 614
7.11.1 使用p:命名空間簡化配置 614
7.11.2 使用c:命名空間簡化配置 615
7.11.3 使用util:命名空間簡化配置 617
7.12 Spring提供的表達式語言(SpEL) 619
7.12.1 使用Expression接口進行表達式求值 619
7.12.2 Bean定義中的表達式語言支持 621
7.12.3 SpEL語法詳述 622
7.13 本章小結(jié) 627
第8章 深入使用Spring 628
8.1 兩種后處理器 629
8.1.1 Bean后處理器 629
8.1.2 Bean后處理器的用處 633
8.1.3 容器后處理器 633
8.1.4 屬性占位符配置器 634
8.1.5 重寫占位符配置器 636
8.2 Spring的“零配置”支持 637
8.2.1 搜索Bean類 637
8.2.2 指定Bean的作用域 640
8.2.3 使用@Resource和@Value配置依賴 640
8.2.4 使用@PostConstruct和@PreDestroy定制生命周期行為 641
8.2.5 使用@DependsOn和@Lazy改變初始化行為 642
8.2.6 自動裝配和精確裝配 643
8.2.7 Spring 5新增的注解 647
8.2.8 使用@Required檢查注入 648
8.3 資源訪問 648
8.3.1 Resource實現(xiàn)類 649
8.3.2 ResourceLoader接口和ResourceLoaderAware接口 653
8.3.3 使用Resource作為屬性 655
8.3.4 在ApplicationContext中使用資源 656
8.4 Spring的AOP 660
8.4.1 為什么需要AOP 660
8.4.2 使用AspectJ實現(xiàn)AOP 661
8.4.3 AOP的基本概念 667
8.4.4 Spring的AOP支持 668
8.4.5 基于注解的“零配置”方式 669
8.4.6 基于XML配置文件的管理方式 684
8.5 Spring的緩存機制 690
8.5.1 啟用Spring緩存 690
8.5.2 使用@Cacheable執(zhí)行緩存 693
8.5.3 使用@CacheEvict清除緩存 696
8.6 Spring的事務(wù) 698
8.6.1 Spring支持的事務(wù)策略 698
8.6.2 使用XML Schema配置事務(wù)策略 702
8.6.3 使用@Transactional 708
8.7 Spring整合Struts 2 709
8.7.1 啟動Spring容器 709
8.7.2 MVC框架與Spring整合的思考 710
8.7.3 讓Spring管理控制器 711
8.7.4 使用自動裝配 715
8.8 Spring整合Hibernate 717
8.8.1 Spring提供的DAO支持 717
8.8.2 管理Hibernate的SessionFactory 718
8.8.3 實現(xiàn)DAO組件的基類 719
8.8.4 HibernateTemplate和HibernateDaoSupport 722
8.8.5 實現(xiàn)DAO組件 725
8.8.6 使用IoC容器組裝各種組件 725
8.8.7 使用聲明式事務(wù) 728
8.9 Spring整合JPA 729
8.9.1 管理EntityManagerFactory 729
8.9.2 實現(xiàn)DAO組件基類 732
8.9.3 使用聲明式事務(wù) 734
8.10 本章小結(jié) 735
第9章 企業(yè)應(yīng)用開發(fā)的思考和策略 736
9.1 企業(yè)應(yīng)用開發(fā)面臨的挑戰(zhàn) 737
9.1.1 可擴展性、可伸縮性 737
9.1.2 快捷、可控的開發(fā) 738
9.1.3 穩(wěn)定性、高效性 738
9.1.4 花費最小化,利益最大化 739
9.2 如何面對挑戰(zhàn) 739
9.2.1 使用建模工具 739
9.2.2 利用優(yōu)秀的框架 739
9.2.3 選擇性地擴展 741
9.2.4 使用代碼生成器 742
9.3 常見設(shè)計模式精講 742
9.3.1 單例模式 743
9.3.2 簡單工廠 744
9.3.3 工廠方法和抽象工廠 750
9.3.4 代理模式 753
9.3.5 命令模式 758
9.3.6 策略模式 761
9.3.7 門面模式 763
9.3.8 橋接模式 766
9.3.9 觀察者模式 769
9.4 常見的架構(gòu)設(shè)計策略 773
9.4.1 貧血模型 773
9.4.2 領(lǐng)域?qū)ο竽P?776
9.4.3 合并業(yè)務(wù)邏輯組件與DAO組件 778
9.4.4 合并業(yè)務(wù)邏輯組件和Domain Object 779
9.4.5 拋棄業(yè)務(wù)邏輯層 780
9.5 本章小結(jié) 781
第10章 簡單工作流系統(tǒng) 782
10.1 項目背景及系統(tǒng)結(jié)構(gòu) 783
10.1.1 應(yīng)用背景 783
10.1.2 系統(tǒng)功能介紹 783
10.1.3 相關(guān)技術(shù)介紹 784
10.1.4 系統(tǒng)結(jié)構(gòu) 785
10.1.5 系統(tǒng)的功能模塊 785
10.2 Hibernate持久層 786
10.2.1 設(shè)計持久化實體 786
10.2.2 創(chuàng)建持久化實體類 787
10.3 實現(xiàn)DAO層 792
10.3.1 DAO組件的定義 792
10.3.2 實現(xiàn)DAO組件 795
10.3.3 部署DAO層 797
10.4 實現(xiàn)Service層 799
10.4.1 業(yè)務(wù)邏輯組件的設(shè)計 799
10.4.2 實現(xiàn)業(yè)務(wù)邏輯組件 800
10.4.3 事務(wù)管理 805
10.4.4 部署業(yè)務(wù)邏輯組件 806
10.5 實現(xiàn)任務(wù)的自動調(diào)度 806
10.5.1 使用Quartz 806
10.5.2 在Spring中使用Quartz 810
10.6 實現(xiàn)系統(tǒng)Web層 813
10.6.1 Struts 2和Spring的整合 813
10.6.2 控制器的處理順序圖 814
10.6.3 員工登錄 814
10.6.4 進入打卡 816
10.6.5 處理打卡 818
10.6.6 進入申請 819
10.6.7 提交申請 821
10.6.8 使用攔截器完成權(quán)限管理 823
10.7 本章小結(jié) 824