Java EE 7 介紹 by kapa | CodeData
top

Java EE 7 介紹

分享:
tags: Java Java EE

在Java EE 6發布後的三年,去年更將雲端相關功能延到Java EE 8後,Oracle終於在今年6月12日正式發布了Java EE 7。

Java EE全名為Java Enterprise Edition,是為了企業相關應用開發所制定,在一開始J2EE 1.2出現,到讓人詬病的冗長API、語法、設定所造成的不易開發,Java EE 5開始大幅改進,到現在仍然還在進化中。在最新的EE 7中帶來了HTML5相關支援、Java API for RESTful WebServices(JAX-RS)、WebSocket、JSON Processing(JSON-P)、Batch、Concurrency Utilities..等新功能以及開發效率的提昇。

關於本篇連載

雖然EE 7才剛發布,且多數公司可能不會這麼快就開始轉移到新版本,但是早一點開始了解EE 7所帶來的改變,對於未來決定是否更新或採用哪些技術時應該都會有些幫助。本連載會把重點擺在EE 7帶來的新功能和改進,所以對於曾經接觸過Java EE和Web應用程式開發的人會比較適合。在連載過程中會使用NetBeansGlassFish來撰寫和執行範例。連載開始的第一篇就先大約介紹一下EE 7所帶來的更新。

Java EE 7 所帶來的新功能

全新的規格有以下四個:

  1. Batch Applications for the Java Platform (JSR 352)

    多數使用Java EE的應用都是即時的線上應用,但是在一些企業系統常常也需要批次處理的功能,除了延續COBOL或使用其他語言開發外,如果使用Java的話就必須自己建立對應的框架。在EE 7中則新增了批次處理相關功能,參考了Spring Batch的Reader-Processor-Writer模式,方便開發者可以更專注於批次處理的商業邏輯部份。

  2. Concurrency utilities for Java EE (JSR 236)

    終於在Web和EJB環境下容許建立Thread。應用程式可以建立獨自的Thread Pool和工作的管理。

  3. Java API for JSON (JSR 353)

    到目前為止Java開發者如果需要處理JSON資料時,都依照喜好選擇喜歡的程式庫來使用,例如org.json、Jackson和gson..等等。在EE 7將JSON處理標準化,提供了較低階的Stream和較高階的Object Model兩種API來讀取和建立JSON,此規格未包含Java物件和JSON文件的binding 。

  4. Java API for WebSocket (JSR 356)

    WebSocket是一種讓瀏覽器與伺服器建立雙向通訊的技術,可以達到即是且雙向的事件通知。在WebSocket尚未標準化之前,其實在各家容器(Jetty、Resin和Tomcat..等)就已經有提供自己的實作,在有了標準後,這些容器之後版本(Tomcat 8Jetty)都會開始支援此標準。

功能有較大幅改進的部份則有:

  1. JavaServer Faces 2.2 (JSR 344)

    支援HTML5 markup,Faces Flow, 新增Stateless Mode, 檔案上傳,Resource Bundle的改善,ViewAction 元件和CSRF對策。

  2. Expression Language 3.0 (JSR 341)

    雖然Java SE要到8才支援,但是EE 7裡已經可以在使用EL時使用lambda expressions了。此規格也從JSP和JSF等表現層中獨立出來,可以直接在非EE環境中使用。支援靜態變數(static variable),靜態函式(static method)和enum。

  3. Java Message Service 2.0 (JSR 343)

    Annotation和Contexts and Dependency Injection的支援,新API被稱為Simplified API,不管是發送方式和接收方式,與之前的1.1版相比,大幅減少繁瑣的API呼叫以增進開發效率。

  4. JAX-RS 2.0: The Java API for RESTful Web Services (JSR 339)

    Filter以及Interceptor。提供客戶端API(Client API)。非同步處理。整合Bean Validation。

其他部份改進的部份則有像Servlet 3.1的Non-blocking I/O、HTTP protocol upgrade mechanism、增進安全性;Bean Validation 1.1的method-level validation、CDI整合;EJB 3.2的EJB Lite改進;JPA 2.1的Converter(讓資料庫欄位與程式型別間的轉換)、Criteria API的bulk Update/Delete、Stored procedures..等。

而對於開發Web應用程式來說,有時並不需要用到這麼多Java EE的功能,此時完整的EE環境反而會稍嫌肥大。從EE 6開始,便有了Web Profile的方式定義了Web應用程式所需要的EE子集,不僅簡化安裝也對記憶體使用量有幫助。而為了因應EE 7新增的功能,JAX-RS、Java API for JSON和Java API for WebSocket都一併被加入Web Profile內。

開發工具和執行環境

開發工具使用NetBeans 7.3.1,請到下載頁面安裝Java EE版本,安裝時要記得GlassFish Server Open Source Edition 4.0也一併安裝。

結尾

第一篇大約粗淺的介紹了EE 7所帶來的新功能和改進,下一回開始筆者將針對這些改進做詳細一點的介紹與提供範例,希望對EE 7有興趣的讀者有幫助。

後續 >> Java EE 7 – Batch Applications for the Java Platform(一)

分享:
按讚!加入 CodeData Facebook 粉絲群

留言

留言請先。還沒帳號註冊也可以使用FacebookGoogle+登錄留言

關於作者

愛好 Java 的工程師,前幾年主要開發 Web Application,最近則在接觸 Mobile App 開發。

熱門論壇文章

熱門技術文章