《EJB實戰》作者點評Java EE 6新變化
【IT168 專稿】近日《EJB實戰》的作者Reza Rahman在普林斯頓Java用戶團體的一次會議上展示了JEE 6的一些新特性,盡管會議上出了一點小花絮,由于投影儀損壞,Reza不得不通過一個15寸的顯示器來進行演示,但是與會人員依然熱情不減,畢竟能夠與Java EE 6和EJB 3.1專家組成員之一交流的機會并不是經常有。
在過去幾年中,JEE已經變成一個穩定和成熟的開發環境,但是人們對它的興趣卻并非十分高漲。人們已經習慣于批評它不夠酷,批評它相對Spring具有許多缺點。不過JEE6實際上有不少重大的改進。以下是此次會議重點提到的它的一些變化。
1、功能刪減
在JEE 6中移除了一些沒有用戶的功能,例如JAX-RPC、EJB 2.x Entity beans CMP等。
2、版本變化
JEE 6中提供三個版本,分別被以三種方式封裝。精簡(Minimal)版實際上就是一個Servlet容器;中間(Intermediate)版在精簡版基礎上增加了對EJB 3.1、WebBeans、JTA和JPA的支持;而完整版則增加了對JMS、JCA和大量JAX中間件技術。
我更愿意重新封裝精簡版,以加入JMS和事務管理的支持。把阿基米德的話在這兒改編一下,“給我一個Servlet容器,再加上MOM和JOTM,我可以改變這個世界。”許多企業應用程序都可以使用這些產品或APIs來開發完成。
WebBeans(JSR 299)集JSF、JPA和EJB 3于一體。它引入了會話(Conversation)、依賴注入(Dependency Injection)和注解元數據編程(annotation meta-programming)。
3、改進JSF功能
另外還有一些改進來讓JSF重新煥發活力,例如配置約定、RESTful和AJAX支持,不過,對于這個技術我還是心存懷疑。我們現在正處于一個富互聯網應用(RIA)的時代,我更傾向于將JSF將JEE規范中移除,而僅僅重點關注JavaFX。
4、簡化EJB 3.1
EJB 3.1將變得更簡單,這一點或許很多人已經有所耳聞。這兒比較有趣的一個開發是引入了(單態)Singleton Bean,將其作為你的應用的整體庫,另外還有格式聲明和編程定時器,支持Java SE(你可以直接在你的桌面應用上迅速創建一個服務器容器),還有EJB精簡版。
5、在Java Persistence API中增加Bean驗證(JSR 303),將可以讓你在不同層次上驗證數據。我希望有個一個可以有一個設置打開或關閉這個功能。
6、Servlet 3.0(JSR 3.0)一直是我非常關注的技術,原因是它具有非常巨大的可擴展潛力。通過使用非阻塞I/O(non-blocking I/O)和異步處理(查詢的掛起和恢復),可以大大增加支持的并發用戶的數量。開源的Jetty已經提出了一個Servlet 3.0的實現,商業化版本也將增加這一功能。Servlet正在轉化為一個注解版的POJO。
7、最后一點是,通過使用JAX-FS API的ReEST,JEE 6將提供Web服務支持。