最近,SUN的伙伴們(the folks at SUN)將J2EE 1.5改名為java EE 5,當然以前J2EE版本還是稱(chēng)為J2EE,之所以改名,目的還是讓大家清楚J2EE只是Java企業(yè)應用,用我的話(huà)來(lái)說(shuō),J2EE就是Java在數據庫服務(wù)器端的應用。 看來(lái),現在大多數人傾向于更加突出Java了,J2EE容易讓初學(xué)者誤解是獨立于一套Java的技術(shù)方案。
Security安全是Java EE的一個(gè)重要特點(diǎn),也就是基于容器的安全訪(fǎng)問(wèn),無(wú)需自己手工編碼。 事務(wù)管理Transaction Management也是Java EE 5的一個(gè)重要部分,該標準文檔 從幾個(gè)方面闡述了事務(wù)管理的要點(diǎn),標準中規定了在WEB層中使用事務(wù)和線(xiàn)程的處理關(guān)系,標準中規定:Web服務(wù)器如Tomcat無(wú)需在Web層提供事務(wù)支持,因為Web組件根本不支持事務(wù)繁衍/傳遞。
因為目前一些架構如Struts+Spring+Hibernate/Struts+Hibernate是標準中的Web結構,因此Java EE 5在J2EE 4.2.2規定了 Web組件事務(wù)的生命周期,如果Web組件直接調用JTA,事務(wù)就不可以跨一個(gè)客戶(hù)端的多個(gè)請求,事務(wù)只能在一個(gè)請求(Servlet/Jsp)中完成,這個(gè)標準規定了我們在Web架構中(如上述架構)無(wú)法使用長(cháng)事務(wù)(如工作流/狀態(tài)圖中跨頁(yè)面請求事務(wù)),針對一個(gè)客戶(hù)端跨請求的事務(wù)目前只有唯一解決方案:只有使用EJB的有態(tài)Session。參考文章:I manage long duration transactions? 以上是Java EE 5主要部分,Java EE包含更多其他技術(shù)部分如Jdbc JMS JCA JNDI 等等,需要用戶(hù)在實(shí)踐中摸索。
附:Java EE 5.0帶來(lái)簡(jiǎn)化開(kāi)發(fā)革命是否名至實(shí)歸?
作者Debu Panda在其發(fā)表的一篇文章“Is Java EE 5.0 really simplifying development?”中,提出了有關(guān)Java EE 5.0簡(jiǎn)化開(kāi)發(fā)的思索。
作者在文中提到,“‘JavaEE 5.0通過(guò)公審投票’是一件值得關(guān)注的事。因為Java EE 5.0將使Java得企業(yè)開(kāi)發(fā)變得更容易。EJB 3.0,JSF和Web服務(wù)元數據,這些技術(shù)的應用將帶來(lái)開(kāi)發(fā)的簡(jiǎn)化革命。”
“盡管采用JavaEE 5.0簡(jiǎn)化了商業(yè)的應用開(kāi)發(fā),然而我所不能確定的是,應用這些技術(shù)的過(guò)程究竟是否得到了簡(jiǎn)化?很早以前我就認識到,在J2EE中調用web services是一件非常復雜且易出錯的事情;過(guò)程需要簡(jiǎn)化,然而Java EE 5.0草案中并沒(méi)有體現這一點(diǎn)。”
作者最后指出,“如果EJBs和Web services的客戶(hù)使用并沒(méi)有得到簡(jiǎn)化,就不能說(shuō)Java EE 5.0真正簡(jiǎn)化了開(kāi)發(fā)!”