首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

使用 CMP 2.0 與 XML 處理動態數值物件:打造鬆散耦合的企業層資料傳輸

     編輯:Java 程式設計入門

背景問題

EJB 2.0 引入區域介面與容器管理關係(CMR)前,實體 Bean 常用於建模粗粒度領域物件,配合 Value Object 傳輸資料。但複雜系統會產生過多 Value Object,造成企業層與客戶層緊耦合,且 Bean 提供者需手寫關係維護代碼。

解決方案:動態 XML 文件

利用 EJB 2.0 區域介面、CMR 與 JAXP,動態遍歷容器管理的持久化欄位(CMP)與關係欄位(CMR),在運行時產生 XML DOM 文件作為資料傳輸物件(DTO)。優點:

  • 企業層與表現層鬆散耦合。
  • 關係維護交由容器,簡化 Bean 提供者工作。
  • 新增領域物件時,無需新增 DTO 類別,XML 自動包含新結構。

架構概覽

  • Session Facade:暴露業務用例,查找實體 Bean,透過 CMP/CMR 取得資料,轉為 XML 回傳。
  • 動態 XML 產生工具類:遞迴遍歷實體 Bean 的區域介面,處理雙向關係避免無限循環,輸出 org.w3c.dom.Document。
  • 表現層:使用 JSP 自訂標籤與 XSLT 消費 XML。

關鍵技術點

  1. CMR 存取方法:回傳 Collection 或區域介面,視關係基數而定,可在 Session Facade 中透過區域介面導航。
  2. 避免循環引用:工具類需追蹤已訪問 Bean 實例(如用 IdentityHashMap),遇重複則跳過或輸出參考。
  3. JAXP 整合:使用 DocumentBuilderFactory 建構 DOM,將 Bean 屬性與關係轉為元素/屬性。

完整工具類實作請參考原文後續章節。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved