輕量級Java EE企業應用實戰(第5版)――Struts 2+Spring 5+Hiberna

輕量級Java EE企業應用實戰(第5版)――Struts 2+Spring 5+Hiberna 下載 mobi epub pdf 電子書 2025

李剛 著
圖書標籤:
  • Java EE
  • Struts 2
  • Spring 5
  • Hibernate
  • 企業應用
  • 實戰
  • Java開發
  • Web開發
  • 後端開發
  • 輕量級框架
  • 第五版
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 電子工業齣版社
ISBN:9787121337161
版次:5
商品編碼:12327466
包裝:平裝
開本:16開
齣版時間:2018-03-01
用紙:膠版紙
頁數:836
字數:1806000
正文語種:中文
附件:DVD光盤
附件數量:1

具體描述

産品特色

編輯推薦

適讀人群 :Java程序開發者,計算機及相關專業本科高年級及研究生在校生

1.軟件版本新!計算機圖書所涉及軟件版本的重要性不言而喻

本書基於Spring 5,Struts2.5.14,Hibernate 5.2.12,新增JPA的內容,還介紹瞭Servlet 3.X的新特性以及Tomcat 8.5。

增加介紹當前企業開發潮流的配置管理工具:Git。無Git,不企業。


2. 名師名傢作品
李剛老師一嚮是品質的保證,所創作的專業著作影響瞭海峽兩岸愈50萬讀者,所培訓的學生有不少入職騰訊、阿裏、唯品會等IT名企。


3. 圖書的附加值超燃
DVD光盤中包含1000分鍾超長視頻、豐富代碼等內容。

為讀者提供用於學習交流的配套網站、微信群、QQ群。

附贈107道各大企業Java EE麵試題,覆蓋Java Web、Struts 2、Hibernate、Spring、Spring MVC,助力叩開名企Java開發大門。


4. 屢獲殊榮

本書曾榮獲中國書刊發行業協會授予的“年度全行業YouXiu暢銷品種”奬項,並多次榮獲電子工業齣版社授予的暢銷書奬項,纍計印刷40+次。


5. 經驗豐富,針對性強
作者既擔任過軟件開發的技術經理,也擔任過軟件公司的培訓導師,還從事過職業培訓的專職講師。這些經驗影響瞭作者寫書的目的,這不是一本學院派的理論讀物,而是一本實際的開發指南。


6.內容實際,實用性強
《輕量級Java EE企業應用實戰》所介紹的Java EE應用範例,采用瞭目前企業流行的開發架構,嚴格遵守Java EE開發規範,而不是將各種技術雜亂地糅閤在一起。


7.高屋建瓴,啓發性強
《輕量級Java EE企業應用實戰》介紹的幾種架構模式,幾乎是時下常見的多種Java EE架構模式,有助於提升讀者對係統架構設計的把握。


內容簡介

本書是《輕量級Java EE企業應用實戰》的第5版,主要介紹瞭Java EE領域的四個開源框架和技術:Struts 2、Spring 5、Hibernate 5和JPA 2。


第5版新增介紹瞭JPA的內容,包括其API的基本用法、JPA查詢、JPA動態條件查詢等。本書還全麵介紹瞭Servlet 3.1的新特性,以及Tomcat 8.5的配置和用法。本書重點介紹瞭如何整閤Struts 2.5+Spring 5.0+Hibernate 5.2進行Java EE開發,主要包括三部分。


第一部介紹瞭Java EE開發的基礎知識,以及如何搭建開發環境。


第二部分詳細講解瞭Struts 2.5、Spring 5.0、Hibernate 5.2、JPA的用法,在介紹三個框架時,以Eclipse IDE的使用來上手,一步步帶領讀者深入這些技術的核心。這部分內容既包含瞭筆者多年開發經曆的領悟,也融入瞭豐富的授課經驗。


第三部分示範開發瞭一個包含7個錶,錶之間具有復雜的關聯映射、繼承映射等關係,且業務也相對復雜的工作流案例,希望讓讀者理論聯係實際,將三個框架真正運用到實際開發中。該案例采用目前非常流行、規範的Java EE架構,整個應用分為領域對象層、DAO層、業務邏輯層、MVC層和視圖層,各層之間分層清晰,層與層之間以鬆耦閤的方式組織在一起。該案例既提供瞭與IDE無關的、基於Ant管理的項目源碼,也提供瞭基於Eclipse IDE的項目源碼,以最大限度地滿足讀者的需求。


當讀者閱讀此書遇到技術難題時,也可登錄http://www.crazyit.org發帖,筆者將會及時予以解答。


作者簡介

李剛,十餘年軟件開發從業經驗,瘋狂軟件教育中心教學總監。瘋狂Java實訓營創始人,瘋狂Java體係原創圖書作者,CSDN特邀講師。

培訓的學生已在騰訊、阿裏、華為、IBM、網易、唯品會、電信盈科等名企就職。

國內知名高端IT技術圖書作傢,已齣版《瘋狂Java講義》《瘋狂Android講義》《輕量級Java EE企業應用實戰》《瘋狂前端開發講義》《瘋狂HTML5/CSS3/JavaScript講義》《瘋狂iOS講義(基礎篇)(提高篇)》《瘋狂XML講義》《經典JavaEE企業應用實戰》《Struts 2.x quanwei指南》等著作。

其中瘋狂Java體係圖書均已沉澱多年,贏得極高的市場認同,多次重印,多部著作印刷數量超過10萬冊,並被多所“985”“211”院校選作教材,部分圖書已被翻譯成繁體中文版,授權到中國颱灣地區。

目錄

第1章 Java EE應用和開發環境 1
1.1 Java EE應用概述 2
1.1.1 Java EE應用的分層模型 2
1.1.2 Java EE應用的組件 3
1.1.3 Java EE應用的結構和優勢 4
1.1.4 常用的Java EE服務器 4
1.2 輕量級Java EE應用相關技術 5
1.2.1 JSP、Servlet 3.x和JavaBean及替代技術 5
1.2.2 Struts 2.5及替代技術 5
1.2.3 Hibernate 5.2及替代技術 6
1.2.4 Spring 5.0及替代技術 6
1.3 Tomcat的下載和安裝 7
1.3.1 安裝Tomcat服務器 8
1.3.2 配置Tomcat的服務端口 9
1.3.3 進入控製颱 9
1.3.4 部署Web應用 12
1.3.5 配置Tomcat的數據源 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開發Java EE應用 17
1.4.6 導入Eclipse項目 20
1.4.7 導入非Eclipse項目 21
1.5 Ant的安裝和使用 22
1.5.1 Ant的下載和安裝 23
1.5.2 使用Ant工具 23
1.5.3 定義生成文件 25
1.5.4 Ant的任務(task) 29
1.6 Maven的安裝和使用 31
1.6.1 下載和安裝Maven 31
1.6.2 設置Maven 32
1.6.3 創建、構建簡單的項目 33
1.6.4 Maven的核心概念 36
1.6.5 依賴管理 41
1.6.6 POM文件的元素 43
1.7 使用SVN進行協作開發 44
1.7.1 下載和安裝SVN服務器 45
1.7.2 配置SVN資源庫 45
1.7.3 下載和安裝SVN客戶端 47
1.7.4 將項目發布到服務器 47
1.7.5 從服務器下載項目 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 創建分支 51
1.7.13 沿著分支開發 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 創建本地資源庫 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 剋隆(Clone)項目 63
1.8.9 創建分支 64
1.8.10 沿著分支開發 64
1.8.11 閤並分支 65
1.8.12 使用Eclipse作為Git客戶端 65
1.8.13 配置遠程中央資源庫 67
1.8.14 推送(Push)項目 69
1.8.15 獲取(Fetch)項目和拉取(Pull)項目 70
1.9 本章小結 72

第2章 JSP/Servlet及相關技術詳解 73
2.1 Web應用和web.xml文件 74
2.1.1 構建Web應用 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個內置對象 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的開發 122
2.7.2 Servlet的配置 124
2.7.3 JSP/Servlet的生命周期 125
2.7.4 load-on-startup Servlet 126
2.7.5 訪問Servlet的配置參數 127
2.7.6 使用Servlet作為控製器 129
2.8 JSP 2的自定義標簽 133
2.8.1 開發自定義標簽類 133
2.8.2 建立TLD文件 134
2.8.3 使用標簽庫 135
2.8.4 帶屬性的標簽 136
2.8.5 帶標簽體的標簽 139
2.8.6 以頁麵片段作為屬性的標簽 141
2.8.7 動態屬性的標簽 143
2.9 Filter介紹 144
2.9.1 創建Filter類 145
2.9.2 配置Filter 146
2.9.3 使用URL Rewrite實現網站僞靜態 149
2.10 Listener介紹 150
2.10.1 實現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 本章小結 187

第3章 Struts 2的基本用法 188
3.1 MVC思想概述 189
3.1.1 傳統Model 1和Model 2 189
3.1.2 MVC思想及其優勢 190
3.2 Struts 2的下載和安裝 191
3.2.1 為Web應用增加Struts 2支持 191
3.2.2 在Eclipse中使用Struts 2 192
3.2.3 增加登錄處理 193
3.3 Struts 2的流程 196
3.3.1 Struts 2應用的開發步驟 196
3.3.2 Struts 2的運行流程 197
3.4 Struts 2的常規配置 198
3.4.1 常量配置 198
3.4.2 包含其他配置文件 204
3.5 實現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的動態方法調用 217
3.6.4 指定method屬性及使用通配符 219
3.6.5 配置默認Action 224
3.6.6 配置Action的默認處理類 225
3.7 配置處理結果 225
3.7.1 理解處理結果 225
3.7.2 配置結果 226
3.7.3 Struts 2支持的結果類型 227
3.7.4 plainText結果類型 229
3.7.5 redirect結果類型 230
3.7.6 redirectAction結果類型 231
3.7.7 動態結果 232
3.7.8 Action屬性值決定物理視圖資源 232
3.7.9 全局結果 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插件的相關常量 247
3.9.6 Convention插件相關注解 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的標簽庫 256
3.11.1 Struts 2標簽庫概述 256
3.11.2 使用Struts 2標簽 257
3.11.3 Struts 2的OGNL錶達式語言 258
3.11.4 OGNL中的集閤操作 260
3.11.5 訪問靜態成員 261
3.11.6 Lambda(?)錶達式 261
3.11.7 控製標簽 262
3.11.8 數據標簽 271
3.11.9 主題和模闆 279
3.11.10 自定義主題 281
3.11.11 錶單標簽 282
3.11.12 非錶單標簽 294
3.12 本章小結 297

第4章 深入使用Struts 2 298
4.1 詳解Struts 2的類型轉換 299
4.1.1 Struts 2內建的類型轉換器 299
4.1.2 基於OGNL的類型轉換 300
4.1.3 指定集閤元素的類型 302
4.1.4 自定義類型轉換器 304
4.1.5 注冊類型轉換器 306
4.1.6 基於Struts 2的自定義類型轉換器 308
4.1.7 處理Set集閤 308
4.1.8 類型轉換中的錯誤處理 311
4.2 使用Struts 2的輸入校驗 316
4.2.1 編寫校驗規則文件 316
4.2.2 國際化提示信息 319
4.2.3 使用客戶端校驗 320
4.2.4 字段校驗器配置風格 321
4.2.5 非字段校驗器配置風格 322
4.2.6 短路校驗器 324
4.2.7 校驗文件的搜索規則 325
4.2.8 校驗順序和短路 327
4.2.9 內建校驗器 327
4.2.10 基於注解的輸入校驗 337
4.2.11 手動完成輸入校驗 339
4.3 使用Struts 2控製文件上傳 342
4.3.1 Struts 2的文件上傳 342
4.3.2 實現文件上傳的Action 343
4.3.3 配置文件上傳的Action 345
4.3.4 手動實現文件過濾 347
4.3.5 攔截器實現文件過濾 348
4.3.6 輸齣錯誤提示 349
4.3.7 文件上傳的常量配置 350
4.4 使用Struts 2控製文件下載 351
4.4.1 實現文件下載的Action 351
4.4.2 配置Action 352
4.4.3 下載前的授權控製 352
4.5 詳解Struts 2的攔截器機製 353
4.5.1 攔截器在Struts 2中的作用 354
4.5.2 Struts 2內建的攔截器 354
4.5.3 配置攔截器 356
4.5.4 使用攔截器的配置語法 357
4.5.5 配置默認攔截器 358
4.5.6 實現攔截器類 360
4.5.7 使用攔截器 361
4.5.8 攔截方法的攔截器 362
4.5.9 攔截器的執行順序 365
4.5.10 攔截結果的監聽器 366
4.5.11 覆蓋攔截器棧裏特定攔截器的參數 367
4.5.12 使用攔截器完成權限控製 368
4.6 使用Struts 2的Ajax支持 370
4.6.1 使用stream類型的Result實現Ajax 370
4.6.2 JSON的基本知識 372
4.6.3 實現Action邏輯 375
4.6.4 JSON插件與json類型的Result 376
4.6.5 實現JSP頁麵 377
4.7 本章小結 378

第5章 Hibernate的基本用法 380
5.1 ORM和Hibernate 381
5.1.1 對象/關係數據庫映射(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的數據庫操作 385
5.2.3 在Eclipse中使用Hibernate 389
5.3 Hibernate的體係結構 392
5.4 深入Hibernate配置文件 393
5.4.1 創建Configuration對象 393
5.4.2 hibernate.properties文件與hibernate.cfg.xml文件 396
5.4.3 JDBC連接屬性 396
5.4.4 數據庫方言 397
5.4.5 JNDI數據源的連接屬性 398
5.4.6 Hibernate事務屬性 399
5.4.7 二級緩存相關屬性 399
5.4.8 外連接抓取屬性 399
5.4.9 其他常用的配置屬性 400
5.5 深入理解持久化對象 400
5.5.1 持久化類的要求 400
5.5.2 持久化對象的狀態 401
5.5.3 改變持久化對象狀態的方法 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 映射數據庫對象 427
5.7 映射組件屬性 430
5.7.1 組件屬性為集閤 432
5.7.2 集閤屬性的元素為組件 433
5.7.3 組件作為Map的索引 434
5.7.4 組件作為復閤主鍵 436
5.7.5 多列作為聯閤主鍵 438
5.8 使用傳統的映射文件 439
5.8.1 增加XML映射文件 439
5.8.2 注解,還是XML映射文件 441
5.9 本章小結 442

第6章 深入使用Hibernate與JPA 443
6.1 Hibernate的關聯映射 444
6.1.1 單嚮N-1關聯 444
6.1.2 單嚮1-1關聯 449
6.1.3 單嚮1-N關聯 450
6.1.4 單嚮N-N關聯 453
6.1.5 雙嚮1-N關聯 455
6.1.6 雙嚮N-N關聯 458
6.1.7 雙嚮1-1關聯 459
6.1.8 組件屬性包含的關聯實體 461
6.1.9 基於復閤主鍵的關聯關係 463
6.1.10 復閤主鍵的成員屬性為關聯實體 464
6.1.11 持久化的傳播性 467
6.2 繼承映射 468
6.2.1 整個類層次對應一個錶的映射策略 470
6.2.2 連接子類的映射策略 472
6.2.3 每個具體類對應一個錶的映射策略 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風格的批量更新/刪除 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 關聯和連接 487
6.4.5 查詢的select子句 490
6.4.6 HQL查詢的聚集函數 491
6.4.7 多態查詢 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 動態條件查詢 497
6.5.1 執行DML語句 501
6.5.2 select的用法 502
6.5.3 元組查詢 503
6.5.4 多Root查詢 504
6.5.5 關聯和動態關聯 505
6.5.6 分組、聚集和排序 508
6.6 原生SQL查詢 510
6.6.1 標量查詢 510
6.6.2 實體查詢 511
6.6.3 處理關聯和繼承 514
6.6.4 命名SQL查詢 515
6.6.5 調用存儲過程 517
6.6.6 使用定製SQL 518
6.6.7 JPA的原生SQL查詢 520
6.7 數據過濾 524
6.8 事務控製 526
6.8.1 事務的概念 527
6.8.2 Session與事務 527
6.8.3 上下文相關的Session 529
6.9 二級緩存和查詢緩存 530
6.9.1 開啓二級緩存 530
6.9.2 管理緩存和統計緩存 533
6.9.3 使用查詢緩存 534
6.10 事件機製 537
6.10.1 攔截器 537
6.10.2 事件係統 539
6.11 本章小結 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 設值注入 553
7.3.3 構造注入 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 設置普通屬性值 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 創建Bean的3種方式 588
7.7.1 使用構造器創建Bean實例 588
7.7.2 使用靜態工廠方法創建Bean 589
7.7.3 調用實例工廠方法創建Bean 591
7.8 深入理解容器中的Bean 593
7.8.1 抽象Bean與子Bean 593
7.8.2 Bean繼承與Java繼承的區彆 595
7.8.3 容器中的工廠Bean 595
7.8.4 獲得Bean本身的id 597
7.8.5 強製初始化Bean 598
7.9 容器中Bean的生命周期 598
7.9.1 依賴關係注入之後的行為 599
7.9.2 Bean銷毀之前的行為 601
7.9.3 協調作用域不同步的Bean 603
7.10 高級依賴關係配置 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 本章小結 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實現類 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實現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執行緩存 693
8.5.3 使用@CacheEvict清除緩存 696
8.6 Spring的事務 698
8.6.1 Spring支持的事務策略 698
8.6.2 使用XML Schema配置事務策略 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 實現DAO組件的基類 719
8.8.4 HibernateTemplate和HibernateDaoSupport 722
8.8.5 實現DAO組件 725
8.8.6 使用IoC容器組裝各種組件 725
8.8.7 使用聲明式事務 728
8.9 Spring整閤JPA 729
8.9.1 管理EntityManagerFactory 729
8.9.2 實現DAO組件基類 732
8.9.3 使用聲明式事務 734
8.10 本章小結 735

第9章 企業應用開發的思考和策略 736
9.1 企業應用開發麵臨的挑戰 737
9.1.1 可擴展性、可伸縮性 737
9.1.2 快捷、可控的開發 738
9.1.3 穩定性、高效性 738
9.1.4 花費最小化,利益最大化 739
9.2 如何麵對挑戰 739
9.2.1 使用建模工具 739
9.2.2 利用優秀的框架 739
9.2.3 選擇性地擴展 741
9.2.4 使用代碼生成器 742
9.3 常見設計模式精講 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 常見的架構設計策略 773
9.4.1 貧血模型 773
9.4.2 領域對象模型 776
9.4.3 閤並業務邏輯組件與DAO組件 778
9.4.4 閤並業務邏輯組件和Domain Object 779
9.4.5 拋棄業務邏輯層 780
9.5 本章小結 781

第10章 簡單工作流係統 782
10.1 項目背景及係統結構 783
10.1.1 應用背景 783
10.1.2 係統功能介紹 783
10.1.3 相關技術介紹 784
10.1.4 係統結構 785
10.1.5 係統的功能模塊 785
10.2 Hibernate持久層 786
10.2.1 設計持久化實體 786
10.2.2 創建持久化實體類 787
10.3 實現DAO層 792
10.3.1 DAO組件的定義 792
10.3.2 實現DAO組件 795
10.3.3 部署DAO層 797
10.4 實現Service層 799
10.4.1 業務邏輯組件的設計 799
10.4.2 實現業務邏輯組件 800
10.4.3 事務管理 805
10.4.4 部署業務邏輯組件 806
10.5 實現任務的自動調度 806
10.5.1 使用Quartz 806
10.5.2 在Spring中使用Quartz 810
10.6 實現係統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 使用攔截器完成權限管理 823
10.7 本章小結 824

前言/序言

?

前 言


經過多年沉澱,Java EE平颱已經成為電信、金融、電子商務、保險、證券等各行業的大型應用係統的首選開發平颱。在企業級應用的開發選擇上,.Net已趨式微,PHP通常隻用於開發一些企業展示站點或小型應用,因此這些開發語言、開發平颱基本上已無法與Java EE進行對抗瞭。
Java EE開發大緻可分為兩種方式:以Spring為核心的輕量級Java EE企業開發平颱;以EJB 3+JPA為核心的經典Java EE開發平颱。無論使用哪種平颱進行開發,應用的性能、穩定性都有很好的保證,開發人群也有很穩定的保證。
本書介紹的開發平颱,就是以Struts 2.5+Spring 5.0+Hibernate 5.2/JPA(在實際項目中可能以MyBatis代替Hibernate/JPA)為核心的輕量級Java EE,這種組閤在保留經典Java EE應用架構、高度可擴展性、高度可維護性的基礎上,降低瞭Java EE應用的開發、部署成本,對於大部分中小型企業應用是首選。在一些需要具有高度伸縮性、高度穩定性的企業應用(比如銀行係統、保險係統)中,以EJB 3+JPA為核心的經典Java EE應用則具有一定的占有率。本書姊妹篇《經典Java EE企業應用實戰》主要介紹瞭後一種Java EE開發平颱。
本書主要升級瞭《輕量級Java EE企業應用實戰》的知識。本書采用最新的Tomcat 8.5作為Web服務器,全麵而細緻地介紹瞭Servlet 3.1的新特性,並將Struts 2升級到Struts 2.5.14,將Spring升級到5.0.2,將Hibernate升級到5.2.12。本書詳細介紹瞭Spring和Hibernate的“零配置”特性,並充分介紹瞭Struts 2的Convention(約定)支持。為瞭順應技術的改變,本書介紹的Hibernate持久化映射已經全部升級為注解方式,不再采用傳統的XML映射方式。本書還詳細介紹瞭Spring 3.1新增的緩存機製,包括使用@Cacheable執行緩存,使用@CacheEvict清除緩存等,也詳細介紹瞭Spring 5.0的改變,包括Spring 5.0引入的@NonNull、@NonNullApi、@NonNullFields等新注解。
Hibernate 5.x的變化較大,Hibernate進一步嚮JPA規範靠攏,它的不少API都藉用於JPA規範。此外,Hibernate將自身的動態條件查詢API標記為過時(未來會刪除它們),全麵改為使用JPA的動態條件查詢API。因此,本書同時介紹瞭Hibernate 5.2和JPA規範的用法,包括Hibernate API與JPA API之間的對應關係,使用Hibernate與JPA的區彆,並詳細介紹瞭JPA的基本用法、JPA批量操作、JPQL查詢、JPA動態條件查詢等,讀者可通過本書同時掌握Hibernate和JPA的用法。

本書創作感言
筆者首先要感謝廣大讀者對本書前幾版的認同,本書前幾版纍計發行十幾萬冊,並獲得中國書刊發行業協會頒發的“2011年度全行業優秀暢銷品種”大奬,且多次獲得電子工業齣版社頒發的“最暢銷圖書奬”。是廣大讀者的選擇讓“瘋狂Java體係”圖書大放異彩;是廣大讀者的支持讓我在孤獨的技術創作道路上堅持求索;是廣大讀者的反饋讓“瘋狂Java體係”圖書日臻完美。
廣大讀者的熱情對我來說既是支持,又是責任—“瘋狂Java體係”圖書有責任必須完美!因此筆者在改進、升級“瘋狂Java體係”圖書時,有一種如履薄冰的感覺,希望以最大的努力來貢獻最好的作品。
另外,本書還有一本配套的姊妹篇:《經典Java EE企業應用實戰》。學習本書時可以采用“輕經閤參”的方式來學習—“輕”指的是以SSH整閤的輕量級Java EE開發平颱,“經”指的是以EJB3+JPA整閤的經典Java EE開發平颱;這兩種平颱本身具有很大的相似性,將兩種Java EE開發平颱結構放在一起參考、對照著學習,能更好地理解Spring、Hibernate框架的設計思想,從而更深入地掌握它們。與此同時,也可以深入理解EJB 3與Spring容器中的Bean、EJB容器與Spring容器之間的聯係和區彆,從而融會貫通地掌握EJB 3+JPA整閤的開發方式。
在介紹非常專業的編程知識之時,筆者總會通過一些淺顯的類比來幫助讀者更好地理解。“簡單、易讀”成為筆者一貫堅持的創作風格,也是“瘋狂Java體係”圖書的特色。另外,“瘋狂Java體係”圖書的知識也很全麵、實用。筆者希望讀者在看完“瘋狂Java體係”圖書之後,可以較為輕鬆地理解書中所介紹的知識,並切實學會一種實用的開發技術,進而將之應用到實際開發中。如果讀者在學習過程中遇到無法理解的問題,可以登錄瘋狂Java聯盟()與廣大Java學習者交流,筆者也會通過該平颱與大傢一起交流、學習。

本書有什麼特點
本書保持瞭《輕量級Java EE企業應用實戰》前幾版簡單、實用的優勢,同樣堅持讓案例說話,以案例來介紹知識點的風格。本書最後同樣示範開發瞭企業工作流案例,希望讀者通過該案例真正步入實際企業開發的殿堂。
本書依然保留瞭《輕量級Java EE企業應用實戰》前幾版的三個特色。
1.經驗豐富,針對性強
筆者既擔任過軟件開發的技術經理,也擔任過軟件公司的培訓導師,還從事過職業培訓的專職講師。這些經驗影響瞭筆者寫書的目的,本書不是一本學院派的理論讀物,而是一本實際的開發指南。
2.內容實際,實用性強
本書所介紹的Java EE應用範例,采用瞭目前企業流行的開發架構,絕對嚴格遵守Java EE開發規範,而不是將各種技術雜亂地糅閤在一起號稱Java EE。讀者參考本書的架構,完全可以身臨其境地感受企業實際開發。
3.高屋建瓴,啓發性強
本書介紹的幾種架構模式,幾乎是時下最全麵的Java EE架構模式。這些架構模式可以直接提升讀者對係統架構設計的把握。

本書寫給誰看
如果你已經掌握Java SE內容,或已經學完瞭《瘋狂Java講義》一書,那麼你非常適閤閱讀此書。除此之外,如果你已有初步的JSP、Servlet基礎,甚至對Struts 2、Spring 5.0、Hibernate 5.2、JPA有所瞭解,但希望掌握它們在實際開發中的應用,本書也將非常適閤你。如果你對Java的掌握還不熟練,則建議遵從學習規律,循序漸進,暫時不要購買、閱讀此書,而是按照《瘋狂Java學習路綫圖》中的建議順序學習。



《Java EE 企業應用實戰:Spring Boot 與微服務架構》 深度剖析現代Java企業級開發,掌握Spring Boot與微服務核心技術,引領技術革新浪潮 在日新月異的軟件開發領域,Java EE 憑藉其強大的生態係統和成熟的解決方案,始終占據著企業級應用開發的重要地位。然而,隨著雲計算、容器化以及敏捷開發理念的深入人心,傳統的Java EE 開發模式正麵臨著新的挑戰與機遇。以 Spring Boot 為代錶的輕量級框架,以其快速開發、簡化配置的特性,迅速成為現代Java企業級應用開發的寵兒。同時,微服務架構作為一種解耦、可擴展、高可用的係統設計範式,正引領著企業級應用架構的深刻變革。 本書,《Java EE 企業應用實戰:Spring Boot 與微服務架構》,正是基於這一時代背景,為廣大Java開發者量身打造的一部權威指南。本書將帶領讀者深入探索Spring Boot 的核心機製,理解其“約定大於配置”的設計理念,掌握如何利用Spring Boot 快速構建健壯、可維護的企業級應用程序。更重要的是,本書將係統性地闡述微服務架構的設計原則、技術選型與落地實踐,幫助讀者構建適應未來業務發展需求的現代化分布式係統。 本書內容詳盡,涵蓋瞭從基礎概念到高級實踐的方方麵麵,力求為讀者提供全麵、深入的學習體驗: 第一部分:Spring Boot 核心原理與快速開發 Spring Boot 基礎: 深入理解 Spring Boot 的自動化配置、內嵌服務器、起步依賴等核心特性,掌握如何快速搭建項目骨架,擺脫繁瑣的XML配置。 Spring Boot 核心組件: 詳細講解 Spring Boot 在數據訪問、Web開發、消息隊列、緩存等方麵的集成方案,如 Spring Data JPA、Spring MVC、RabbitMQ、Redis 等,實現便捷高效的應用開發。 Spring Boot 高級特性: 探索 Spring Boot 的 Actuator 模塊,學習如何對應用進行監控、管理和健康檢查;掌握 Profile 的使用,實現不同環境下的配置切換;深入理解 Spring Boot 的外部化配置,提升應用的可移植性和靈活性。 Spring Boot 部署與生産優化: 講解 Spring Boot 應用的打包、部署方式,包括 JAR 包、WAR 包以及 Docker 容器化部署;探討性能調優、安全加固等生産環境下的關鍵實踐。 第二部分:微服務架構設計與實踐 微服務理念與架構模式: 係統闡述微服務架構的核心思想、優勢與挑戰,介紹常見的微服務架構模式,如 API Gateway、服務注冊與發現、斷路器、分布式事務等。 Spring Cloud 生態係統: 深入學習 Spring Cloud 生態係統中各個組件的作用與用法,包括 Eureka/Consul(服務注冊與發現)、Ribbon/LoadBalancer(客戶端負載均衡)、Hystrix/Resilience4j(服務容錯)、Zuul/Spring Cloud Gateway(API 網關)、Config Server(配置中心)等。 服務拆分與設計: 講解如何從單體應用中進行有效的服務拆分,識彆服務邊界,設計高內聚、低耦閤的微服務。 服務間通信: 詳細介紹 RESTful API、消息隊列(如 Kafka、RabbitMQ)等不同服務間通信方式的優缺點及適用場景,並給齣具體的實現方案。 數據一緻性與分布式事務: 麵對分布式環境下的數據一緻性難題,本書將重點講解 TCC(Try-Confirm-Cancel)、Saga 等分布式事務解決方案,以及其在 Spring Cloud 中的實踐。 服務治理與監控: 學習如何利用 Spring Boot Admin、Prometheus、Grafana 等工具對微服務進行統一管理、監控和告警,保障係統的穩定運行。 容器化與 DevOps: 結閤 Docker 和 Kubernetes,講解如何實現微服務的容器化部署、自動化運維,以及 CI/CD 流程的構建。 第三部分:綜閤案例實戰 本書並非停留在理論層麵,而是通過一個貫穿始終的綜閤性案例,將前麵所學的知識融會貫通。讀者將有機會跟隨作者的指導,從零開始構建一個基於 Spring Boot 和 Spring Cloud 的真實企業級微服務應用。這個案例將涵蓋用戶管理、訂單處理、商品服務等多個模塊,充分展示微服務架構在實際業務場景中的應用,幫助讀者理解服務拆分、服務注冊與發現、API 網關、服務容錯、分布式配置管理、消息隊列通信以及最終一緻性等關鍵技術的落地過程。通過動手實踐,讀者可以深刻理解各個組件之間的協同工作機製,掌握解決實際問題的思路和方法。 本書的特色與優勢: 緊跟技術前沿: 聚焦 Spring Boot 和 Spring Cloud,這是當前Java企業級開發的主流技術棧。 理論與實踐並重: 深入剖析技術原理,同時通過大量代碼示例和綜閤案例,強化實踐能力。 內容係統全麵: 覆蓋瞭從微服務基礎概念到高級主題的各個方麵,構建瞭完整的知識體係。 案例貼近實戰: 真實的企業級應用案例,讓讀者能夠學以緻用,解決實際開發中的痛點。 語言通俗易懂: 采用清晰、流暢的語言,避免晦澀難懂的專業術語,降低學習門檻。 麵嚮開發者: 專為有一定Java基礎,希望深入掌握現代Java企業級開發技術的開發者設計。 適閤讀者群體: 希望掌握 Spring Boot 快速開發能力的Java開發者。 正在或計劃進行微服務架構轉型的企業技術團隊。 對分布式係統、雲原生技術感興趣的開發者。 在傳統Java EE 開發中遇到瓶頸,尋求技術升級的開發者。 需要提升應用開發效率和係統可維護性的技術人員。 《Java EE 企業應用實戰:Spring Boot 與微服務架構》 將是你踏入現代Java企業級開發新紀元,擁抱微服務化浪潮的得力助手。本書將不僅僅是一本技術書籍,更是一次引領你技術視野革新的旅程。通過本書的學習,你將能夠自信地設計、開發、部署和維護高可用、高可擴展的現代化企業級應用,在技術浪潮中把握先機,成為一名真正具備未來競爭力的Java工程師。

用戶評價

評分

這本書對我來說,更像是一次關於“架構思維”的啓濛。它不僅僅是羅列技術細節,而是試圖構建一種完整的應用藍圖。從我個人經驗來看,很多時候開發者會陷入到某個框架的具體API使用中,而忽略瞭整體的架構設計。我希望這本書能夠引導我思考,如何在 Struts 2 的 MVC 模式下,更好地集成 Spring 的 AOP 和依賴注入,從而實現業務邏輯的解耦和重用。同時,Hibernate 作為 ORM 框架,它與 Service 層、DAO 層的交互方式,以及如何避免常見的 N+1 查詢問題,都是我特彆想深入瞭解的。書中如果能有對這些“痛點”的解決方案,並且給齣一些最佳實踐,我會覺得這本書的價值非凡。我尤其期待它能在“實戰”部分,展示如何通過閤理的配置和設計,讓這三大框架協同工作,最大化地發揮各自的優勢,同時又避免相互之間的衝突和性能瓶頸。這種“整閤”的智慧,往往比單純的技術講解更具啓發性,也更能幫助我提升解決復雜問題的能力。

評分

這本書的封麵設計相當樸實,沒有花哨的插圖,就是書名和作者信息,這讓我感覺它更側重於內容本身。拿到書的時候,我最先關注的是它的紙張質量,摸上去挺厚實的,印刷也清晰,閱讀起來不會有不適感。翻開目錄,我對 Struts 2、Spring 5 和 Hibernate 這三個技術棧的結閤非常感興趣,這正是我目前工作中最常接觸和需要深入理解的部分。我尤其希望書中能對這三個框架的最新版本特性有深入的講解,比如 Spring 5 在響應式編程和函數式編程方麵的實踐,以及 Hibernate 5 在性能優化和新注解方麵的應用。如果書中能夠提供一些實際項目中的案例,並且詳細解釋其中的設計思路和實現細節,那將對我非常有幫助。畢竟,理論知識再豐富,沒有實踐的支撐也顯得蒼白。我希望這本書能夠像它的書名所暗示的那樣,提供一種“輕量級”的實現思路,而不是冗餘復雜的代碼堆砌。在閱讀過程中,我也會特彆留意書中關於“企業級應用實戰”的這部分,期望它能包含一些通用的設計模式、架構原則以及部署和運維方麵的考量,幫助我構建更健壯、可維護的Java EE應用。

評分

拿到這本書,我最大的期待是它能給我帶來一種“實操感”。我不是一個喜歡紙上談兵的人,更看重的是能夠動手實踐。這本書的名稱中有“實戰”二字,這讓我對它充滿信心。我希望它能提供一些可以跟著敲代碼的例子,並且這些例子不是簡單的HelloWorld,而是能夠逐步深入,展示如何構建一個完整的、具有一定規模的企業級應用。從Struts 2的請求處理流程,到Spring的IoC和DI的應用,再到Hibernate的數據庫映射和查詢優化,我希望這本書能夠一步步地引導我,讓我能夠清晰地理解每一個技術點在整個應用中的作用和價值。我尤其期待書中能提供一些關於錯誤處理、日誌記錄、異常管理等方麵的實踐建議,這些是企業級應用開發中非常重要但又容易被忽視的環節。如果書中還能包含一些關於性能測試和優化的內容,讓我能夠從數據上驗證我的代碼是否“輕量級”,那就更完美瞭。

評分

對於我這樣一個有一定Java EE開發基礎的開發者來說,這本書的吸引力在於它所涵蓋的技術棧的“經典”與“最新”。Struts 2 雖然可能不是最前沿的MVC框架,但它依然是很多老項目中廣泛使用的技術,理解它的運作機製對於維護和改進現有係統至關重要。而Spring 5和Hibernate,它們無疑是當前Java EE生態中最核心的組成部分。我希望這本書能夠清晰地闡述Spring 5在現代化Java開發中的角色,例如它對Java 8+特性的支持,以及其在微服務架構中的應用潛力。Hibernate方麵,除瞭基本的CRUD操作,我更關注它在復雜查詢、緩存策略以及事務管理方麵的精細化調優。如果書中能夠提供一些性能分析的工具和方法,並結閤具體的代碼示例,幫助我理解如何寫齣更高性能的持久化層代碼,那就太棒瞭。這本書的“實戰”部分,我期盼它能提供一些具有代錶性的企業級應用場景,比如用戶認證、權限管理、數據訪問等,並通過一步步的代碼演示,讓我能夠清晰地看到這三個框架是如何協同工作的,以及在實際項目中可能遇到的挑戰和解決方案。

評分

這本書給我的感覺是一種“係統性”的學習。我接觸過 Struts 2,也用過 Spring,對 Hibernate 也有一些基礎的瞭解,但總感覺它們之間的聯係不夠緊密,或者說我沒有找到一個很好的切入點去深入理解它們是如何融會貫通的。這本書的名字《輕量級Java EE企業應用實戰》恰恰擊中瞭我的痛點,我希望它能提供一個“輕量級”的視角,幫助我理解如何在實際項目中,用最簡潔有效的方式將這三個框架整閤起來。我特彆關注書中是否能清晰地解釋 Struts 2 的 Action、Interceptor,Spring 的 Bean、AOP、MVC,以及 Hibernate 的 Session、Entity 之間的關係,並且是如何通過 Spring Bean 來管理 Hibernate 的 SessionFactory 和事務的。此外,書中關於“企業應用”的論述,我希望它能涵蓋一些基礎的企業級架構模式,例如分層架構、領域驅動設計等,並且展示如何將這些思想融入到 Struts 2 + Spring + Hibernate 的技術棧中。

評分

書質量挺好的,以後還會來!!!

評分

挺好的,書慢慢看吧!

評分

不錯的書,希望自己看完它,加油。

評分

挺好的,能學到一些東西……

評分

不錯不錯不錯不錯不錯不錯不錯不錯不錯不錯不錯不錯不錯

評分

全新書有包裝薄膜。書中內容豐富,講解得很細緻。

評分

挺不錯的一本書,看瞭幾頁感覺很適閤自己,挺棒的,多多學習

評分

怎麼說呢,還是不錯的,下次需要的時候還會考慮再買的

評分

一本專業性很強的書,值得購買

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有