程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 使用CMP2和XML處理動態數值對象

使用CMP2和XML處理動態數值對象

編輯:JAVA編程入門知識

  在EJB 2.0局部引用和容器治理關系出現之前,通常把實體EJB用於模型粗粒度域對象。這主要是由於與遠程通信有關系統開銷並阻止了細粒度訪問企業層的客戶層對象。粗粒度設計的性能通過實現數值對象而促進改善,壓縮所有的數據也就是說在客戶層和企業層之間傳遞數據。 <!-- frame contents --> <!-- /frame contents --> 使用有大量域對象的復雜系統,即使這麼樣能提供一個第一流的和高度執行設計,這個設計導致在系統內出現過多的數值對象。這同樣也創建在企業層和客戶層之間的緊密連接。同樣,在EJB出現之間,bean提供者不得不明確地提供用於維護域對象之間聯接的程序。在一個有在域對象之間的復雜關系的情況中,數值對象的設計變得很復雜。在使用EJB開發企業應用程序的過程中,容器治理關系和局部引用的出現開啟了令人興奮的新途徑。在本文中,我將帶你使用EJB 2.0的強大方法連同bean組件和JAXP創建動態的基於數據結構的XML,可以在你的企業層和表現層之間傳遞信息。

  從企業層到客戶層傳遞數據的過程中使用XML,可以幫助你實現在的應用程序中的多種寬松連接;然而,當你把新的域對象添加到實體型中時,你可能需要添加用於創建新DOM構架的類來添加該實體。在文中,我們將開發一個框架來動態地遍歷容器治理和給定的局部EJB有關的域,並且創建一個可以在應用程序的多個層之間傳遞的XML件。這個方法將有以下優點∶
  
  在企業層和客戶層之間促進寬松連接。
  
  便於治理域對象之間關系。
  
  從系統中除去復雜數值對象因為XML是由動態地遍歷CMP和CMR域產生的,當它們添加新對象到域模型中時,bean提供者不必創建新的用來創建新的DOM構架的對象類。

  EJB 2.0局部引用促進訪問bean組件;bean組件與局部引用結合可以含於與其他的被容器治理的bean的關系。舉例來說,在一個幫助系統中,UserEJB可以有與ServiceRequestEJB的一到多雙向關系和與ProdUCtEJB的一到一的單向聯系以及與ServiceRequestHistoryEJB的一到的雙向關系。UserEJB同時可以有與PhoneEJB一到多的雙向關系。這樣,使用EJB 2.0局部引用和容器治理關系,你可以設計一套復雜的有關體。容器治理持久性和關系域是在bean類中使用抽象存取程序方法定的。用於關系域的存取程序方法要麼返回一個集合要麼返回定義這個系的bean的本機接口,這還取決於這個關系集的容量。這些存取程序法可以通過bean組件的本機接口展示。EJB 2.0的深入研究超出了本文范圍,請參閱EJB 2.0的規范。
  
  一個效率高的設計模式應該通過外觀組件展示你的應用程序的使用案例並且不准從客戶層中直接訪問實體組件。回到我們的幫助系統的例子中來,其中的一個使用案例是取得給定用戶的具體資料。外部組件可以查找需要的用戶實體組件,並且通過容器治理持久性與關系域取得所需數據並把它返回表現層。
  
  用於數據傳送對象的一個顯而易見的選擇就是簡單的Java bean。UserBean可能有表示持久性與關系域的屬性。這種關系域要麼是java.util.Collection要麼是其他的取決於這種關系的bean組件。UserBean可能有ServiceRequestBean和PhoneBean集。ServiceRequestBean可能有一個ProductBean和許多ServiceRequestHistory bean組件。此外,這些bean組件還可能還有簡單的String或者表現容器治理持久性域的基本屬性。這個選擇的主要的不利之處就是使你的實體模型更加復雜,使你的數據傳送對象bean層次更加復雜,還將在你的服務(企業)層和消費(表現)層之間創建緊密連接。研究一下這個關系的復雜的層次,一個更好的選擇是使用XML DOM對象作為數據傳送對象。你的組件將產生oeg.w3c.dom.Document對象類型並且你的表現組件使用XML的jsp自定義標記和XSLT文件來“消費”它們。
  現在,下一個問題是∶怎麼從CMP局部bean引用中創建XML文件?我們可以使用一個基於用於創建不同的類型的DOM組件的方法的工廠;然而,這將創建過多的“工場”組件,並且你可能需要添加新的"工場"組件作為你的實體模型擴展。我們需要的是一個可以使用實體局部對象,引導容器治理關系和創建動態DOM構架的公用程序。這個公用程序將負責在雙向關系中循環引用,以避免無限的循環和深入導航關系元素。
  
  接下來我們將演示一個可以提供這個功能的公用程序類。
  

  
 

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