日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JR - 精品文章 - 為什么是Java EE?5(轉(zhuǎn)自pconline)

 lovelydog 2005-09-20
什么是Java EE 5(轉(zhuǎn)自pconline)
autumn_thermal 轉(zhuǎn)貼  (參與分:11472,專家分:820)   發(fā)表:2005-09-06 17:39   版本:1.0   閱讀:181

最近,SUN的伙伴們(the folks at SUN)將J2EE 1.5改名為java EE 5,當然以前J2EE版本還是稱為J2EE,之所以改名,目的還是讓大家清楚J2EE只是Java企業(yè)應用,用我的話來說,J2EE就是Java在數(shù)據(jù)庫服務器端的應用。
  看來,現(xiàn)在大多數(shù)人傾向于更加突出Java了,J2EE容易讓初學者誤解是獨立于一套Java的技術方案。

  從更深層次來看,Java誕生十年來,很多近十年前的業(yè)務組件至今還可以使用,軟件應用不再由于語言的更迭革命帶來毀滅的打擊了。

  但是,隨著WEB和EJB容器概念誕生,使得軟件應用業(yè)開始擔心SUN的伙伴們是否還在Java平臺上不斷推出翻新的標準框架,致使軟件應用業(yè)的業(yè)務核心組件架構(gòu)無所適從,從一直以來是否需要EJB的討論聲中說明了這種彷徨。

  筆者曾經(jīng)在2004年底中國軟件技術大會Ioc微容器演講中指出:我們需要一個跨J2SE/WEB/EJB的微容器,保護我們的業(yè)務核心組件(中間件),以延續(xù)它的生命力,而不是依賴J2SE/J2EE版本,如下圖:
 
  此次J2EE改名為Java EE,實際也反映出業(yè)界這種共同心聲。
讓我們看看Java EE 5有哪些新的功能或規(guī)定,我們可以從SUN網(wǎng)站下載Java EE 5規(guī)范。其架構(gòu)圖如下:
 
  圖中灰色加黑部分是Java EE 5新的功能,我們看到,在WEB層主要加入了JSF這個新的表現(xiàn)層框架,和我們?nèi)粘i_發(fā)關系密切的是,引入了新的Java Persistence標準,這個標準正在由EJB 3.0專家組制定。

  值得指出的是,這個Java持久化標準也可以嵌入在WEB層調(diào)用,所以,它肯定不會從屬于EJB標準,這樣,當前所有的Java持久層標準如:JDBC/JDO/Hibernate/Entity Bean將可能統(tǒng)一,減少用戶的架構(gòu)選擇 痛苦。

  從架構(gòu)圖可以看出,無論Web結(jié)構(gòu)或EJB結(jié)構(gòu),提供實現(xiàn)的功能相差不多,這樣,我們的業(yè)務核心組件就可以根據(jù)需要部署在Web或EJB中運行,而不依賴具體的Java EE容器了。前面一章圖的目標在Java EE 5中可以實現(xiàn)了。 

  當然,Java EE 5重要改變還是:Java EE不再象以前那樣只注重大型商業(yè)系統(tǒng)的開發(fā),而是更關注小到中型系統(tǒng)的開發(fā),簡化這部分系統(tǒng)開發(fā)步驟。
落實這一簡化行動的最大特征是在Java 5.0(Java 1.5)中加入Annotations,通過Annotations引入,降低Java EE開發(fā)時,既要寫code,又要寫XML配置文件之苦,來回照顧,疲于奔命,Annotations既是得益于C++語言,也是從開源項目xDoclet實踐中獲得經(jīng)驗。

  但是Annotations是一把雙刃劍,初學者用得不好,將會使得原本在XML中的Hard code(硬編碼) 寫進入代碼Annotations,破壞代碼的簡潔和靈活性。

  當然,Annotations的引入不只是解決XML配置,從大的概念說,是解決一個資源注射問題(XML屬于其中一個資源),在原理J2EE中,容器管理的資源都是由JNDI向應用程序提供的,現(xiàn)在通過Annotations可以方便實現(xiàn)注射。

  資源注射(Resource injection)設計概念其實是來自Ioc模式(Dependency Injection ),筆者設計開發(fā)的Jdon框架其實已經(jīng)將Annotations這一宗旨的目的實現(xiàn),在Jdon框架應用演示源碼SimpleJdonFrameworkTest中,在jdonframework.xml中有一段如下配置: 
<pojoService class="com.jdon.framework.test.dao.JdbcDAO" name="jdbcDAO">
  <constructor value="java:/TestDS"/>
</pojoService>

  這段配置是將數(shù)據(jù)庫的JNDI名java:/TestDS注射到JdbcDAO中。Jdon Framework下一個版本將是基于Java 5.0,這行配置 將可通過 Annotations寫在jdbcDAO代碼中,方便程序員開發(fā)。

  從這里,大家也可以知道EJB 3.0和EJB 2.0的區(qū)別了,有的人疑惑,是學習EJB 3.0還是學習EJB 2.0,其實EJB 3.0并沒有在原理機制上對EJB有多大改動,只是做了編程方面的簡化,另外EJB CMP參考了Hibernate新特點,EJB 3.0最大簡化變動是CMP編程方法上。所以,無論學習EJb 3.0/2.0,EJB原理和運行機制都是一樣,這部分才是學習EJB最大的困難處,而不是因為到了EJB 3.0,理解EJB就會容易。

  初學者可從Eclipse+Xdoclet開發(fā)EJB 2.0開始學習, EJB 3.0 = EJB 2.0 + xDoclet,使用JBossIDE非常簡單,無需Lomboz等插件。

  Security安全是Java EE的一個重要特點,也就是基于容器的安全訪問,無需自己手工編碼。
事務管理Transaction Management也是Java EE 5的一個重要部分,該標準文檔 從幾個方面闡述了事務管理的要點,標準中規(guī)定了在WEB層中使用事務和線程的處理關系,標準中規(guī)定:Web服務器如Tomcat無需在Web層提供事務支持,因為Web組件根本不支持事務繁衍/傳遞。

  因為目前一些架構(gòu)如Struts+Spring+Hibernate/Struts+Hibernate是標準中的Web結(jié)構(gòu),因此Java EE 5在J2EE 4.2.2規(guī)定了 Web組件事務的生命周期,如果Web組件直接調(diào)用JTA,事務就不可以跨一個客戶端的多個請求,事務只能在一個請求(Servlet/Jsp)中完成,這個標準規(guī)定了我們在Web架構(gòu)中(如上述架構(gòu))無法使用長事務(如工作流/狀態(tài)圖中跨頁面請求事務),針對一個客戶端跨請求的事務目前只有唯一解決方案:只有使用EJB的有態(tài)Session。參考文章:I manage long duration transactions? 
  以上是Java EE 5主要部分,Java EE包含更多其他技術部分如Jdbc JMS JCA JNDI 等等,需要用戶在實踐中摸索。

附:Java EE 5.0帶來簡化開發(fā)革命是否名至實歸?

  作者Debu Panda在其發(fā)表的一篇文章“Is Java EE 5.0 really simplifying development?”中,提出了有關Java EE 5.0簡化開發(fā)的思索。

  作者在文中提到,“‘JavaEE 5.0通過公審投票’是一件值得關注的事。因為Java EE 5.0將使Java得企業(yè)開發(fā)變得更容易。EJB 3.0,JSF和Web服務元數(shù)據(jù),這些技術的應用將帶來開發(fā)的簡化革命。”

  “盡管采用JavaEE 5.0簡化了商業(yè)的應用開發(fā),然而我所不能確定的是,應用這些技術的過程究竟是否得到了簡化?很早以前我就認識到,在J2EE中調(diào)用web services是一件非常復雜且易出錯的事情;過程需要簡化,然而Java EE 5.0草案中并沒有體現(xiàn)這一點。”

  作者最后指出,“如果EJBs和Web services的客戶使用并沒有得到簡化,就不能說Java EE 5.0真正簡化了開發(fā)!”

  全文鏈接:http://radio./0135826/2005/08/17.html

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多