程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java EE 5.0:使J2EE開發變得容易一些

Java EE 5.0:使J2EE開發變得容易一些

編輯:關於JAVA
任何J2EE

開發者都知道開發Java 有多難。新的Java EE 5.0將使你的開發過程變得容易一些。Java EE 5.0具有Web 服務支持、注釋和增強的CMP性能。

  

  要開發一個簡單的J2EE應用程序,程序員必須要寫大量的樣本文件代碼(如JavaBeans企業版)和設定無數個配置文件(XML中的描述文件)。所以要成為一個J2EE開發者,程序員必須熟悉EJB和XML。對於初學者來說,這些將令他們望而生畏。

  

  目前的J2EE說明書(1.4)非常長,是用較老的JDK 1.2版本寫的,這使J2EE更加復雜難懂。新的JDK版本提供了豐富的、簡單好用的性能,比如J2SE 5.0的一般性能和注釋支持。

  

  即將推出的Java EE 5.0的一個主要目的就是,既保持J2EE強大的功能,又可以使一般的開發任務變得容易一些。為了達到這個目的,Java EE 5.0將提供更好的默認性態和設置,允許大多數容器無需使用部署描述符就可以得到需要的東西。為此,Java EE 5.0做了很多注釋。開發者不需要知道執行的細節(由容器完成執行任務)。這些新性能都使企業的Java應用程序更小、更快。

  

  本文揭示了J2EE開發者期待已久的Java EE 5.0的新性能。首先讓我們來簡單地看一下注釋。

  

  [作者提示:由於 J2EE 的最新版本是Java EE 5.0,因此下文中Java EE指新版本,J2EE 指老版本]

  

  Java 注釋

  

  注釋是一種修飾符,在你可以使用其它修飾符(比如public, static, 或 final)的任何地方都可以使用注釋。按規定,注釋優先於其它修飾符。它包括一個@)符號,@後接注釋類型和被括號括起來的元素值對。這些值必須是編譯時間常量。也就是說 Java本身就提高了注釋信息的詳細列表。注釋並不直接影響程序的語義,但它影響工具和庫處理程序的方式,從而對運行的程序的語義產生影響。注釋可從源文件、class文件中閱讀,也會在運行時得到反映。將定義從執行中分離出來並提供一種可以內省約束的方式,這使得執行過程更加靈活。

  

  大多數Java開發者已經很熟悉注釋了,比如所有的JavaDoc標簽和瞬時標簽都是注釋的例子。

  

  EJB入口的注入

  

  在目前的J2EE體系下,為了揭示任何一個業務方法,必須為home接口和遠端接口提供EJB包裝。但在Java EE 5.0中,你可以使用EJB注釋為程序組件的任意字段或方法進行注釋。注釋本身就是EJB session bean的參考。基准可以是EJB session bean的本地或遠端home接口,也可以是EJB3 bean的業務接口。

  

  舉例來說,下面的代碼使用注釋將一個PurchaSEOrder歸到EJB中:

  

  @EJB private PurchaSEOrder po;

  

  @EJB(

  

  ame = "ejb/myEnterpriseApp",

  

   beanName = "po1",

  

  eanInterface ="PurchaSEOrder.class",

  

  description =" The Purchase Order for my enterprise application"

  

  )

  

  rivate PurchaSEOrder po;

  

  Enterprise Bean將用JNDI查找這個名稱Java:comp/env/ejb/po。由於並不清楚目標名稱在哪裡,容器比較解決目標。

  

  是不是很酷呀!現在,通過向現有的業務方法注入EJB注釋,然後將它們部署到適用於Java EE 5.0 的容器中,這樣你馬上就可以把現有的程序加入到ava EE程序中!

  

  為了避免當部署描述符和注釋一起時會出現沖突,容積會優先使用部署描述符而忽略注釋。這個性能可以使現在的J2EE程序移植到("as-is")Java EE 5.0適用的容器。

  

  增強部署描述符:注入環境條目

  

  和部署描述符中的標簽一起,Java EE 5.0提供了一個新的標簽,可以使程序組件代碼能夠訪問業務字段。另外一個方法也可以達到這樣的效果,即使用@Resource注釋標簽,可謂殊途同歸。

  

  舉例來說,下面的代碼,使用注釋將一個訂購單中的商品數量限制為10:

  

  // can be configured from the deployer

  

  @Resource int numberOfItems;

  

  ublic void validatePO(PurchaSEOrder po) throws NumberOfItemsException

  

  {

  

  if(po.getItemCount() > numberOfItems)

  

  throw new NumberOfItemsException("My PO cannot have more than 10 items");

  

  }

  

  使用部署描述符也可以達到同樣的目的:

  

  Number of Items in my PO

  

  numberOfItems

  

  Java.lang.Integer

  

  10

  

  Looking up this value:

  

  Context initContext = new InitialContext();

  

  Context myEnv = (Context) initContext.lookup("Java:comp/env");

  

  Integer NumOfItems = (Integer) myEnv.lookup("numberOfItems");

  

  當使用注釋或標簽向代碼中注入環境條目時,容積就有了查找這些值的職責。

  

  新CMP標簽

  

  Java EE 5.0提供了許多容器管理持久性(CMP)的新標簽。開發者只需指定表格的名稱和列的名稱,其它的由容器完成。在下面的例子中,@Table指定帳目類數據將儲存在ACCOUNT表格中:

  

  @Entity

  

  @Table(name = "ACCOUNT")

  

  ublic class Account implements Java.io.Serializable {

  

  @Id

  

  public String getUserId() {   return userId;  }

  

  @Embedded

  

  public ContactDetails getContactDetails() {    return info;  }

  

  @Column(name="FIRSTNAME")

  

  public String getGivenName(){    return givenName;  }

  

  }

  

  開發者可以使用@Column標簽,從而使表格中列的名稱更加合理。

  

  Java EE服務器中的Web服務

  

  Java EE 5.0的主要目標是提供一個易學、好開發的Web服務模型。它提供的Web服務基礎設施可以使開發者能夠建立強大的、可持續的、高度共用的集成應用程序。Java EE 5.0推出Web Services Metadata,這使一個易學的在Java EE平台的源代碼水平描述Web服務的句法。可以使用工具處理這種句法。下面例子中的代碼執行了一項Web服務:

  

  @WebService(name="MyPOIntf", targetNamespace = "urn:MyPurchaSEOrderService")

  

  @SOAPBinding(style = SOAPBinding.Style.RPC)

  

  ublic interface MyPOIntf extends Remote {

  

  @WebMethod

  

  @WebResult(name="result")

  

  public String submitPODetails(String poXMLString)

  

  throws RemoteException;

  

  }

  

  首先,用WebService注釋定義一個終端接口,然後就可以通過通過執行這個接口而執行各種功能。

  

  對很多經驗豐富的Java開發者,Web服務也依然很神秘。Java EE 5.0將使他們能夠輕松地開發並將現有的企業業務程序部署到Web服務程序中。再過半年到一年Java EE 5.0就會上市,我相信屆時IT市場上將湧現出大批Java EE Web服務開發者。

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