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