編輯推薦
閱讀本書,無需具備Java EE平颱早期版本的知識,但你需要對Java有一些基本瞭解,以便理解代碼。這本書的重要部分來自《Java EE 6 Pocket Guide》(O'Reilly齣版)。添加的新章節覆蓋瞭平颱的新技術。添加的新內容或對現有部分的更新反映瞭平颱的變化。
本書作者是Oracle公司的以為技術布道師,是Java EE團隊的關鍵成員。本書將帶給讀者Java EE開發資訊。
譯者韓陸現就職於阿裏巴巴總部,從事敏捷和自動化測試的研發工作。《JSF和Richfaces使用指南》、《Java Restful Web Services使用指南》作者。
內容簡介
Java EE 7是Java EE全新版本的平颱,它為建立Web應用和企業應用提供瞭簡單、易用和全棧式的服務。
《Java EE 7精粹》提供瞭Java EE 7平颱中關鍵規範的概述。全書共16個章節,對Java EE 7平颱中的每一個概念都給予瞭詳細的解釋,並通過一係列簡單的代碼示例來幫助讀者更好地瞭解這個平颱。作者Arun是Java EE團隊的核心成員,也是Oracle的Java布道者,對Java EE 7平颱的啓動有重要貢獻,是對Java EE 有發言權的技術專傢。
《Java EE 7精粹》適閤那些對Java有一些基本瞭解或者對Java EE 平颱感興趣的讀者,閱讀《Java EE 7精粹》需具備Java EE平颱早期版本的知識。另外,對於瞭解設計模式的讀者而言,通過《Java EE 7精粹》描述的大部分技術還能實現實際應用的構建。
作者簡介
Arun Gupta,是甲骨文的Java布道者。作為Java EE團隊的創始成員之一,他的工作是創建和培育Java EE、GlassFish和WebLogic社區。他帶領一個跨職能的團隊通過戰略、規劃和內容、營銷活動和方案的執行推動Java EE 7平颱的全球啓動。他非常熱衷於開發和接洽閤作夥伴、客戶、JUG、Java champions以及其他傳播於世界各地的Java的精華。Arun擁有豐富的演講經驗,他在30多個國傢演講過數的話題。作為一名作者,Arun有一個多産的博客:blogs.oracle.com/arungupta,同時他是一位跑步愛好者和環球旅行者,請在twitter關注他:@arungupta,他很平易近人。
韓陸,北京航空航天大學軟件工程碩士。熱愛編程,熱衷於開源社區的技術交流和分享,將持續學習作為一種生活習慣。曾混跡於用友總部、新浪、Avaya和Technicolor從事研發工作。現就職於阿裏巴巴總部,從事敏捷和自動化測試的研發工作。《JSF和Richfaces使用指南》、《Java Restful Web Services使用指南》作者。
內頁插圖
精彩書評
本書帶你追逐Java EE 7核心技術的最新進展,縱覽Java EE最新版本將如何擁抱HTML5、專注於更高的生産力,並提供切閤企業需求的功能。本書由Java EE團隊核心成員Arun Gupta所著,為你揭示Java EE 7規範中的多個標準,包括的Web Socket、批處理、REST式的Web服務和Java消息服務。
同時,你將還可以得到一個自學指導,使用本書講述的多種技術構建一個端到端的應用,這將有助於你理解對Java EE開發至關重要的設計模式。
?通過通俗的講述和全麵的代碼示例,瞭解Java EE平颱的核心組件;
?學習每個已添加到Java EE7平颱的新組件,包括Web Socket,JSON,批處理和並發;
?瞭解REST式的Web服務、SOAP 基於XML的消息協議和Java消息服務;
?探索EJB、上下文和依賴注入,以及JPA;
?發現從Java EE 6到Java EE 7,不同的組件進行瞭怎樣的更新。
目錄
第1章 Java EE
1.1 簡介
1.1.1 擁抱HTML5
1.1.2 更高的生産力
1.1.3 企業級需求
1.2 可交付成果
1.2.1 規範(Specification)
1.2.2 參考實現(RI)
1.2.3 技術兼容包(TCK)
1.2.4 Web技術
1.2.5 企業技術
1.2.6 平颱1.1
1.2.7 Web服務技術
1.2.8 管理和安全技術
1.3 Java EE 7有什麼新功能
1.3.1 新的規範
1.3.2 更新的規範
第2章 Servlets
2.1 WebServlet
2.2 Servlet過濾器
2.3 事件監聽器
2.4 異步支持
2.5 非阻塞I/O
2.6 Web Fragment
2.7 安全
2.8 資源打包
2.9 錯誤映射
2.1 0 Handling Multipart Requests
2.1 1 Upgrade Processing
第3章 JSF
3.1 Facelets
3.2 資源處理
3.3 復閤組件
3.4 請求處理生命周期階段
3.4.1 恢復視圖
3.4.2 接受請求值
3.4.3 處理驗證
3.4.4 更新模型值
3.4.5 調用應用
3.4.6 渲染響應
3.5 Ajax
3.6 HTTP GET
3.7 服務器和客戶端擴展點
3.7.1 轉換器
3.7.2 校驗器
3.7.3 監聽器
3.7.4 行為
3.8 驗證數據
3.9 導航規則
3.10 Faces Flow
3.11 資源庫契約
3.12 Passthrough屬性和HTML5友好的標記
3.13 組件標簽
第4章 REST式的Web服務
4.1 資源
4.2 綁定HTTP方法
4.3 多種資源錶述
4.4 綁定請求到資源
4.5 實體Provider
4.6 客戶端API
4.7 映射異常
4.8 過濾器和實體攔截器
4.8.1 過濾器
4.8.2 實體攔截器
4.9 資源驗證
第5章 基於SOAP的Web服務
5.1 Web服務端點
5.2 基於Provider的動態端點
5.3 基於端點的端點
5.4 Web服務客戶端
5.5 基於Dispatch的動態客戶端
5.6 Handler
第6章 JSON-P
6.1 流式API
6.1.1 使用流式API消費JSON
6.1.2 使用流式API生産JSON
6.2 對象模型API
6.2.1 使用對象模型API消費JSON
6.2.2 使用對象模型API生産JSON
第7章 WebSocket
7.1 注解式服務器端點
7.2 編程式服務器端點
7.3 注釋式客戶端端點
7.4 編程式客戶端端點
7.5 JavaScriptWebSocket客戶端
7.6 編碼器和解碼器
7.7 與Java EE安全集成
第8章 EJB
8.1 有狀態會話Bean
8.2 狀態會話Bean
8.3 單例會話Bean
8.4 生命周期事件迴調
8.5 消息驅動Bean
8.6 可移植的全局JNDI名稱
8.7 事務
8.8 異步調用
8.9 定時器
8.10 嵌入式API
8.11 EJB精簡版
第9章 上下文和依賴注入
9.1 探測Bean
9.2 注入點
9.3 Qualifier和Alternative
9.4 生産者和處置者
9.5 攔截器
9.6 裝飾器
9.7 作用域和上下文
9.8 構造型
9.9 事件
9.10 可移植的擴展
9.11 內置Bean
9.12 生命周期迴調
第10章 並發工具包
10.1 異步任務
10.2 計劃任務
10.3 托管綫程
10.4 動態上下文對象
第11章 Bean驗證
11.1 內置的約束
11.2 自定義的約束
11.3 驗證組
11.4 方法和構造子約束
第12章 Java事務
12.1 用戶管理的事務
12.2 容器管理事務
12.3 @TransactionScoped
第13章 Java持久化
13.1 實體
13.2 持久化單元、持久化上下文和實體管理器
13.3 生成Schema
13.4 創建、讀取、更新和刪除實體
13.5 實體監聽器
13.6 存儲過程
13.7 驗證實體
13.8 事務和鎖
13.9 緩存
第14章 消息服務
14.1 發送消息
14.2 同步接收消息
14.3 異步接收消息
14.4 服務的質量
14.5 臨時Destination
第15章 批處理
15.1 麵嚮塊的處理
15.1.1 自定義檢查點
15.1.2 異常處理
15.2 Batchlet處理
15.3 監聽器
15.4 作業順序
15.4.1 Flow
15.4.2 Split
15.4.3 Decision
15.5 作業分區
第16章 構建端到端的應用
16.1 介紹
16.2 問題陳述
16.3 示例走查
16.4 顯示訂票(JSF)
16.5 聊天室(WebSocket的Java API)
16.6 查看和刪除影片(JAX-RS)
16.7 添加電影(JSON-P)
16.8 售票(Java平颱的批處理應用)
16.9 電影點(Java消息服務2)
16.10 結論
16.11 故障排除
16.12 完整的解決方案
附錄A 補充書目
前言/序言
《Java EE 7 精粹》 洞悉企業級 Java 開發的核心,掌握構建強大、可伸縮、高可用應用的利器。 在當今瞬息萬變的軟件開發領域,企業級應用的需求日益增長,對技術棧的深度和廣度提齣瞭更高的要求。Java Enterprise Edition(Java EE),作為一種開放、標準化的平颱,憑藉其健壯性、可伸縮性和跨平颱能力,長期以來一直是構建大規模、高性能、安全可靠的企業級應用程序的首選技術。尤其是在 Web 應用、事務處理、消息傳遞、持久化等核心領域,Java EE 提供瞭豐富而強大的 API 和規範,為開發者提供瞭堅實的基礎。 《Java EE 7 精粹》正是為滿足這一需求而生,它旨在深入剖析 Java EE 7 平颱的核心技術和關鍵特性,帶領讀者掌握構建現代企業級應用所需的關鍵知識和實踐。本書並非泛泛而談,而是專注於那些真正構成 Java EE 精髓、對實際開發至關重要的部分,幫助開發者在最短的時間內,以最有效的方式,獲得最深入的理解。 本書的目標讀者 本書適閤以下人群: 希望係統學習 Java EE 技術的開發者: 無論是初次接觸 Java EE,還是希望鞏固和深化現有知識的開發者,本書都將為您提供一條清晰的學習路徑。 需要構建企業級應用的團隊: 項目經理、技術領導者可以通過本書瞭解 Java EE 7 的強大能力,為項目選型和技術決策提供依據。 對 Web 應用開發、分布式係統、事務管理等感興趣的開發者: 本書深入探討瞭這些領域的核心技術,是深入學習的寶貴資源。 已經熟悉 Java 基礎,但希望轉嚮企業級開發的開發者: 本書將幫助您平滑過渡,快速掌握企業級開發所需的特定技術棧。 本書的核心價值與特色 《Java EE 7 精粹》與市麵上其他 Java EE 書籍最大的不同在於其“精粹”的定位。我們摒棄瞭冗餘和不必要的細節,聚焦於最常用、最核心、最能體現 Java EE 強大之處的技術。通過精心設計的章節結構和詳實的案例分析,本書將帶您領略 Java EE 7 的核心魅力。 1. 聚焦核心技術,拒絕碎片化: Java EE 規範龐大且復雜,許多技術之間相互關聯。本書打破瞭條塊分割的教學模式,而是從應用場景齣發,將相關的技術點有機地串聯起來,幫助讀者構建完整的知識體係。例如,在講解 Web 層時,會自然而然地引齣 Servlet、JSP、JSF 等技術,並闡述它們在處理 HTTP 請求、渲染用戶界麵方麵的作用。 2. 深入剖析,理解“為什麼”: 許多教程僅僅停留在“如何做”的層麵,而本書更注重“為什麼”的解釋。我們會深入分析各項技術的設計理念、工作原理和最佳實踐,讓讀者不僅知道如何使用,更理解其背後的邏輯,從而能夠根據實際情況靈活運用,甚至優化。例如,在講解 JPA 時,會深入探討其對象-關係映射的原理,以及不同映射策略的優劣。 3. 實踐驅動,案例豐富: 理論知識的學習離不開實踐的檢驗。《Java EE 7 精粹》提供瞭大量的代碼示例,這些示例都是經過精心設計和驗證的,覆蓋瞭各種常見的應用場景。讀者可以通過運行和修改這些代碼,直觀地理解各項技術的實際應用效果,並從中學習到寶貴的編碼經驗。 4. 循序漸進,由淺入深: 本書遵循由簡到繁、由易到難的學習規律,從最基礎的 Java EE 概念和架構入手,逐步深入到各項具體技術。即使是初學者,也能在本書的引導下,逐步建立起對 Java EE 的全麵認識。 5. 緊扣 Java EE 7 標準: 本書完全基於 Java EE 7 規範進行編寫,確保內容的時效性和準確性。對於 Java EE 7 中引入的新特性和改進,我們會進行詳細的介紹和闡述,幫助讀者掌握最新的企業級 Java 開發技術。 本書內容概覽(以下為本書可能包含的 核心 章節主題,具體章節順序和命名可能略有調整,但內容方嚮一緻): 第一部分:Java EE 平颱概覽與基礎 Java EE 平颱架構與模型: 介紹 Java EE 平颱的整體架構,包括容器、組件模型、API 等,為後續學習打下堅實基礎。理解 Java EE 如何實現其跨平颱、可伸縮和高可用的特性。 Servlet API 深入解析: 作為 Java Web 應用的基礎,Servlet 在處理 HTTP 請求、生成動態響應等方麵起著至關重要的作用。本章將深入講解 Servlet 的生命周期、請求/響應處理、Filter 和 Listener 等核心概念,並結閤實際案例展示如何使用 Servlet 構建 Web 應用。 JSP(JavaServer Pages)與 EL(Expression Language): JSP 作為一種方便的視圖技術,允許開發者在 HTML 中嵌入 Java 代碼,實現動態頁麵生成。本書將深入講解 JSP 的語法、指令、動作標簽,以及 EL 在簡化頁麵數據訪問方麵的應用,幫助讀者掌握高效的視圖層開發。 WebSockets: 瞭解如何在 Java EE 7 中實現實時雙嚮通信,構建富交互的 Web 應用,例如在綫聊天、實時數據推送等。 JAX-RS(RESTful Web Services): 隨著 RESTful 架構的普及,掌握 JAX-RS 是構建現代 Web 服務不可或缺的一部分。本書將詳細介紹 JAX-RS 的核心注解、請求/響應處理、資源類、媒體類型等,並演示如何構建和消費 RESTful 服務。 第二部分:持久化與數據訪問 JPA(Java Persistence API)核心概念: 深入講解 JPA 作為 Java EE 平颱標準的對象-關係持久化解決方案。理解實體(Entity)、持久化上下文(Persistence Context)、實體管理器(EntityManager)等核心概念,以及如何進行實體映射、查詢和事務管理。 JPA 進階主題: 探索 JPA 的高級特性,例如關聯映射(OneToOne, OneToMany, ManyToOne, ManyToMany)、繼承映射、批量操作、緩存機製等,幫助讀者更高效地進行數據持久化。 JDBC(Java Database Connectivity)基礎迴顧與實踐: 雖然 JPA 是主流,但瞭解 JDBC 基礎仍然重要。本書將簡要迴顧 JDBC 的核心 API,並展示如何將其與 JPA 結閤使用,或者在特定場景下直接使用 JDBC 進行更底層的數據庫操作。 第三部分:事務管理與消息傳遞 Java EE 事務管理: 理解 Java EE 平颱提供的聲明式事務管理(通過注解和 XML 配置)和編程式事務管理,確保數據的一緻性和完整性。重點講解事務的隔離級彆、傳播行為以及 ACID 特性。 JTA(Java Transaction API): 深入瞭解 JTA 如何支持分布式事務,確保跨多個資源(如數據庫、消息隊列)的操作原子性。 JMS(Java Message Service): 學習 JMS API,掌握異步消息傳遞的關鍵技術。理解點對點(Queue)和發布/訂閱(Topic)兩種消息模型,以及如何發送、接收和處理消息,構建解耦、高可用的分布式係統。 第四部分:安全與企業級特性 Java EE 安全模型: 介紹 Java EE 平颱提供的安全機製,包括認證(Authentication)、授權(Authorization)、身份驗證(Principal)、安全域(Security Domain)等。 JAAS(Java Authentication and Authorization Service): 瞭解 JAAS 如何為應用程序提供靈活的認證和授權服務。 Bean Validation: 學習如何使用 Bean Validation API 對 Java 對象進行數據校驗,確保輸入數據的閤法性,減少開發中的錯誤。 CDI(Contexts and Dependency Injection): 深入理解 CDI 作為 Java EE 平颱的依賴注入和上下文管理解決方案。掌握 Bean、Scope、Injection、Producer 等核心概念,以及如何利用 CDI 構建可維護、可擴展的應用。 第五部分:實踐與部署 常用 Java EE 應用服務器介紹與配置: 簡要介紹常見的 Java EE 應用服務器(如 WildFly/JBoss EAP, GlassFish, WebSphere),並指導讀者如何進行基本的配置和部署。 Maven/Gradle 在 Java EE 項目中的應用: 學習如何使用 Maven 或 Gradle 來管理項目依賴、構建、測試和打包,提高開發效率。 Web 服務(SOAP)簡介(可選): 根據本書的“精粹”定位,可能會簡要介紹 SOAP Web 服務,並與 RESTful Web 服務進行對比,以便讀者在有需要時能夠理解。 學習本書,您將能夠: 清晰地理解 Java EE 7 平颱的架構和核心組件。 熟練運用 Servlet、JSP、JSF 構建強大的 Web 應用。 掌握 JAX-RS,設計和實現高效的 RESTful 服務。 深入理解 JPA,實現高效、靈活的數據持久化。 靈活運用事務管理和消息傳遞技術,構建健壯的分布式係統。 掌握 Java EE 安全模型,確保應用的安全性。 利用 CDI 構建高內聚、低耦閤的組件化應用。 掌握 Maven/Gradle 等工具,提高開發效率。 具備獨立開發和部署 Java EE 應用的能力。 《Java EE 7 精粹》不僅僅是一本技術書籍,它更是一種對企業級 Java 開發思想的提煉和升華。通過本書,您將真正掌握構建高質量、高性能、可維護的企業級 Java 應用的核心技術和最佳實踐,為您的職業生涯增添強大的競爭力。讓我們一起開啓這段深入探究 Java EE 7 精髓的旅程吧!