程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 為什麼是Java EE 5

為什麼是Java EE 5

編輯:JAVA編程入門知識

  最近,SUN的伙伴們(the folks at SUN)將J2EE 1.5改名為Java EE 5,當然以前J2EE版本還是稱為J2EE,之所以改名,目的還是讓大家清楚J2EE只是Java企業應用,用我的話來說,J2EE就是Java在數據庫服務器端的應 看來,現在大多數人傾向於更加突出Java了,J2EE輕易讓初學者誤解是獨立於一套Java的技術方案。
  
  從更深層次來看,Java誕生十年來,很多近十年前的業務組件至今還可以使用,軟件應用不再由於語言的更迭革命帶來毀滅的打擊了。
  
  但是,隨著WEB和EJB容器概念誕生,使得軟件應用業開始擔心SUN的伙伴們是否還在Java平台上不斷推出翻新的標准框架,致使軟件應用業的業務核心組件架構無所適從,從一直以來是否需要EJB的討論聲中說明了這種彷徨。
  
  筆者曾經在2004年底中國軟件技術大會Ioc微容器演講中指出:我們需要一個跨J2SE/WEB/EJB的微容器,保護我們的業務核心組件(中間件),以延續它的生命力,而不是依靠J2SE/J2EE版本,如下圖:
  

  此次J2EE改名為Java EE,實際也反映出業界這種共同心聲。
  

  讓我們看看Java EE 5有哪些新的功能或規定,我們可以從SUN網站下載Java EE 5規范。其架構圖如下:
  

  

  圖中灰色加黑部分是Java EE 5新的功能,我們看到,在WEB層主要加入了JSF這個新的表現層框架,和我們日常開發關系密切的是,引入了新的Java Persistence標准,這個標准正在由EJB 3.0專家組制定。
  
  值得指出的是,這個Java持久化標准也可以嵌入在WEB層調用,所以,它肯定不會從屬於EJB標准,這樣,當前所有的Java持久層標准如:JDBC/JDO/Hibernate/Entity Bean將可能統一,減少用戶的架構選擇 痛苦。
  
  從架構圖可以看出,無論Web結構或EJB結構,提供實現的功能相差不多,這樣,我們的業務核心組件就可以根據需要部署在Web或EJB中運行,而不依靠具體的Java EE容器了。前面一章圖的目標在Java EE 5中可以實現了。
  
  當然,Java EE 5重要改變還是:Java EE不再象以前那樣只注重大型商業系統的開發,而是更關注小到中型系統的開發,簡化這部分系統開發步驟。
  

  落實這一簡化行動的最大特征是在Java 5.0(Java 1.5)中加入Annotations,通過Annotations引入,降低Java EE開發時,既要寫code,又要寫XML配置文件之苦,往返照顧,疲於奔命,Annotations既是得益於C++語言,也是從開源項目xDoclet實踐中獲得經驗。
   但是Annotations是一把雙刃劍,初學者用得不好,將會使得原本在XML中的Hard code(硬編碼) 寫進入代碼Annotations,破壞代碼的簡潔和靈活性。
  
  當然,Annotations的引入不只是解決XML配置,從大的概念說,是解決一個資源注射問題(XML屬於其中一個資源),在原理J2EE中,容器治理的資源都是由JNDI向應用程序提供的,現在通過Annotations可以方便實現注射。
  
  資源注射(Resource injection)設計概念其實是來自Ioc模式(Dependency Injection ),筆者設計開發的Jdon框架其實已經將Annotations這一宗旨的目的實現,在Jdon框架應用演示源碼SimpleJdonFrameworkTest中,在jdonframework.xml中有一段如下配置:

  

  <pojoService class="com.jdon.framework.test.dao.JdbcDAO" name="jdbcDAO">
  <constrUCtor value="java:/TestDS"/>
  </pojoService>
  
    這段配置是將數據庫的JNDI名java:/TestDS注射到JdbcDAO中。Jdon Framework下一個版本將是基於Java 5.0,這行配置 將可通過 Annotations寫在jdbcDAO代碼中,方便程序員開發。
  
  從這裡,大家也可以知道EJB 3.0和EJB 2.0的區別了,有的人迷惑,是學習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開發EJB 2.0開始學習, EJB 3.0 = EJB 2.0 + xDoclet,使用JBossIDE非常簡單,無需Lomboz等插件。
  
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved