亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

全面研讀 EJB 2.0

2019-11-18 12:35:32
字體:
來源:轉載
供稿:網友

  新的 EJB 2.0 規范不僅僅是一個新的階段性發行版,它加入了許多引人注目的變動,包括 CMP 組件模型中的一些變動和一種新的 bean 類型,它們將增強您在開發應用程序時的靈活性和可移植性。請率先了解此新規范的功能,本月已發布了它的公開草案。
  
  
    2000年6月2日發布的 EnterPRise javaBeans 2.0 不僅是一個階段性發行版,而且是該規范的一個新版本。整個規范有 500 多頁,比以前的 EJB 1.1 規范長了 200 頁 (66%)。該規范中最重要的變動是對容器治理的持久性 (CMP) 所作的更改,以及引入了一種全新的 bean 類型,即 MessageDrivenBean。
  
  
    EJB 2.0 中的大量更改都集中在一種新 CMP 組件模型的定義中。它完全不同于舊的 CMP 模型,因為它引入了一個全新的成員,即持久性治理器,并引入了全新的方式來定義容器治理的字段,以及定義這些字段與其它 bean 和從屬對象的關系。
  
  
    MessageDrivenBean (消息 bean)的引入也是非常重要的。消息 bean 體現出 JMS (Java Message Service)與 EJB 相集成,以創建出一種全新的 bean 類型,它設計用來處理異步的 JMS 消息。這種振奮人心的新型 bean 為 JMS 客戶機提供一種組件模型,答應將它們部署到 EJB 容器系統的豐富而強健的環境中去。
  
  
    對該規范還作了許多較小的其它更改。這些其它更改雖然也重要,但它們主要是涉及使該規范更嚴格,以便消除多義性,并使這些組件具有更高的可移植性。本文集中討論 EJB 2.0 中引入的新 CMP 和消息 bean 組件模型。
  
  
    我將提供幾個具體的例子,所以讀者應該很輕易跟上并理解它。但是,EJB 初學者可能發現這個材料比較困難,因為它假定讀者已對 EJB 有了基本的了解。有關 EJB 的具體信息,請參閱參考資料。
  
  
    容器治理的持久性
  
  
    容器治理的持久性在 EJB 2.0 中發生了根本變化。在 EJB 2.0 中,持久性治理器在運行時自動處理 CMP 實體 bean 的持久性。持久性治理器負責根據一種稱為抽象持久性方案的新的 bean 持久性治理器合約,將實體 bean 映射到數據庫。此外,持久性治理器還負責實現和執行多種查找方法,這些查找方法均基于一種稱為 EJB QL 的新型查詢語言。
  
  
    注重到以下事實是很重要的,即符合 EJB 2.0 規范的產品必須能支持 EJB 1.1 CMP 模型,又能支持新的 EJB 2.0 模型。雖然這兩種模型并不兼容,但是為了保證向后兼容性,就必須能支持 EJB 1.1 模型。
  
  
    抽象持久性方案
  
  
    為了理解抽象持久性方案是如何工作的,以及它為什么重要,我將為您快速地回顧一下在 EJB 1.1 中是如何處理 CMP 的,隨后再討論在 EJB 2.0 中如何定義它。
  
  
  EJB 1.1 中的 CMP 模型
  
  
    在 EJB 1.1 中,bean 開發人員負責將 bean 類的持久性字段聲明為 Java 基本類型或可序列化類型。下列示例顯示了一個 Employee 企業級 bean 類,它是按 EJB 1.1 定義的,帶有幾個 CMP 字段:
  
  
    // Employee bean 類
    public class EmployeeBean implements
    java.ejb.EntityBean {
    // 實例字段
    EntityContext ejbContext;
  
  
    file:// 容器治理的字段
    public int identity;
    public String firstName;
    public String lastName;
    public double salary;
    public Address address;
  
  
    public Integer ejbCreate(int id, String fname,String lname){
     identity = id;
     firstName = fname;
     lastName = lname;
     return null;
     }
     ...
    
     // Address 從屬類
    public class Address implements Serializable{
    public String street;
    public String city;
    public String state;
    public String zip;
   }
  
  
    當將關系數據庫用于持久性時,基本字段如 identity、firstName、lastName 和 salary,很輕易持久化,因為它們很好地映射為 SQL 類型,如 INTEGER、CHAR 和 DOUBLE。
  
  
    在 EJB 1.1 中,CMP bean 的 xml 部署描述符提供 cmp-field 元素,用以標識此 bean 類中的持久性字段(容器治理的字段)。如下所示,cmp-field 元素用來區分寫入數據庫的字段和不寫入數據庫的字段。例如,ejbContext 字段就不包括在容器治理的字段的列表中,因此它不是持久性字段。
  
  
    
    
    
    EmployeeEJB
      ...
    Container
  
  
    ...
    identity
  
  
    firstName
  
  
    lastName
  
  
    salary
  
  
    address
  
  
     ...
  
  
    容器提供者提供一種工具,用來將 bean 的持久性字段映射到數據庫表中的列,通常每個 bean 對應一個表。但是,可序列化的類型,如 Address,就比較難于持久化。在 EJB 1.1 中,沒有標準的方法將可序列化的對象映射到關系數據庫。雖然 Address 類有其自身的字段集,但 XML 部署描述符并沒有提供一種機制,來將這些字段映射到數據庫。在大多數情況下,人們期望將可序列化的對象(如 Address)作為二進制類型(有時稱為 blob 類型)持久化到某個數據庫表中。
  
  
    由于實體 bean 的數據方案逐漸復雜起來,所以這個問題也變得嚴重了。例如,Employee bean 可能有多個類似于 Address 的子對象,如 Benefits 和 JobPosition。這些子對象稱為從屬對象,可以形成關系數據庫中跨幾個表的復雜對象圖。另外,EJB 1.1 中的 CMP 在很大程度上不足以持久化與其它 bean 的關系。在 EJB 1.1 中,假如某個 bean 預備維持與另一個 bean 的關系,則容器會自動將主要害字或句柄用作一個鏈接。與某些其它 bean 的關系其性質可能是雙向的,或者要依靠于一些不易用主要害字或句柄來表示的字段,為了保持與這類 bean 的關系,上面的辦法已被證實是一種遠未完善的機制。
  
  
    EJB 2.0 的 CMP 模型
  
  
    在 EJB 2.0 中,CMP 實體 bean 和持久性治理器之間的新合約,使您能夠在實體 bean 中定義更復雜的、可移植性更強的關系,包括 bean 與 bean 之間、bean 與從屬對象之間、甚至從屬對象與從屬對象之間的關系。
  
  
    持久性治理器是新加入到 Enterprise JavaBeans 部署過程中的。容器廠商,或專長于特定數據庫的持久性的廠商,將能提供這種持久性治理器。其思路是將用于治理 bean 關系的機制從容器中分離出來,容器只負責治理安全、事務和資源。這種職責上的分離使不同的持久性治理器能夠與不同的容器一起工作。它也使實體 bean 在不同 EJB 廠商之間以及在各種持久性治理器之間具有更強的可移植性。
  
  
    假如您使用或學習過 Thought Inc. 生產的,能自動為 EJB 1.1 容器生成 BMP(bean 治理的持久性)bean 的產品 CocoBase,則您對持久性治理器工具如何工作就已經比較熟悉了。CocoBase 根據 bean 部署者提供的,從對象到關系的映射信息,為 BMP bean 生成全部數據庫訪問邏輯。在 EJB 2.0 中,持久性治理器能夠根據部署描述符、bean 的抽象持久性方案和部署者完成的工作所提供的信息,生成 CMP 實體到關系數據庫的映射。但是,持久性治理器并不局限于關系數據庫。也可以為對象數據庫以及遺留的系統和 ERP 系統(如 SAP)開發持久性治理器。
    為了將持久性治理器從容器中分離出來,必須定義 bean 與持久性治理器之間的合約。這個合約在新的抽象持久性方案中表現出來。此方案是通過部署描述符中一組新的 XML 元素和 CMP 實體 bean 中的一組代碼習語定義的。在 EJB 2.0 中,CMP bean 類被聲明為抽象類,它的持久性字段和關系字段是使用抽象的讀方法和寫方法來訪問的,而這兩種方法的方法特征則映射為 XML 部署描述符中的特定元素。
  
  
    在部署該 bean 時,您將使用持久性治理器工具,根據 XML 部署描述符和 bean 類,來具體實現此抽象 bean 類及其從屬對象類。具體實現將包括數據訪問代碼,此代碼將在運行時將 bean 的狀態實際讀出和寫到數據庫中。在運行時,容器使用由持久性治理器工具生成的子類,而不使用 bean 提供者定義的抽象類。
  
  
    bean 類的繼續層次結構
  
  
    為了使討論更充實,這里提供一個 CMP 實體的示例,它更具體地說明了抽象持久性方案是如何工作的。
  
  EJB 2.0 中的一個示例 CMP 實體
  
  
    在 EJB 2.0 中,容器治理的實體 bean 被定義為抽象的,而且它的持久性字段并不在 bean 類中直接定義。作為替代,開發了一種抽象的持久性方案,從而答應 bean 提供者間接地聲明持久性字段和 bean 關系。下面是 Employee bean 的一個示例,它使用了新的

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av网址在线| 欧美日韩中文在线| 欧美三级xxx| 疯狂蹂躏欧美一区二区精品| 日本精品一区二区三区在线播放视频| 福利微拍一区二区| 久久精品国产亚洲一区二区| 国产日本欧美一区| 久久99久国产精品黄毛片入口| 欧美性猛交xxxx免费看久久久| 亚洲一区二区三区成人在线视频精品| 欧美激情视频在线免费观看 欧美视频免费一| 欧美电影免费观看电视剧大全| 成人a级免费视频| 国产69精品99久久久久久宅男| 九九久久国产精品| 亚洲xxxx在线| 97婷婷涩涩精品一区| 亚洲无限av看| 91精品国产高清自在线看超| 欧美人与物videos| 成人激情视频小说免费下载| 日韩av电影免费观看高清| 97在线视频精品| 黑人狂躁日本妞一区二区三区| 日韩美女毛茸茸| 尤物yw午夜国产精品视频| 色偷偷综合社区| 日韩精品免费观看| 欧美成年人网站| 欧美成人午夜激情在线| 九九久久精品一区| 一区二区三区美女xx视频| 538国产精品一区二区在线| 久久91精品国产91久久久| 久久精品国产2020观看福利| 日韩在线欧美在线国产在线| 日韩精品中文字幕有码专区| 成人天堂噜噜噜| 国产精品av在线播放| 国产精品久久久久影院日本| 国产精品18久久久久久麻辣| 成人性生交大片免费看小说| 精品国产福利在线| 亚洲二区在线播放视频| 国产在线观看精品一区二区三区| 亚洲深夜福利在线| 色婷婷成人综合| 亚洲乱亚洲乱妇无码| 国产精品96久久久久久| 日韩成人激情影院| 亚洲国产欧美自拍| 欧美日韩视频免费播放| 日韩av综合网站| 久久精品久久久久久国产 免费| 亚洲国产97在线精品一区| 亚洲男人天堂手机在线| 国产色视频一区| 91久久国产精品91久久性色| 97在线观看视频| 亚洲在线第一页| 久久久久久一区二区三区| 欧美一区二区色| 国产精品igao视频| 亚洲精品av在线播放| 韩国美女主播一区| 欧美激情videos| 欧美日韩亚洲高清| 精品久久久久久亚洲国产300| 国产小视频国产精品| 国产91色在线免费| 亚洲精品电影网在线观看| 国产视频精品xxxx| 91成人在线播放| 久久免费少妇高潮久久精品99| 欧美电影免费播放| 国产成人亚洲综合| 欧美日韩国产第一页| 国产91精品高潮白浆喷水| 69av视频在线播放| 国产成人综合av| 91夜夜揉人人捏人人添红杏| 色综合色综合网色综合| 久久成人精品视频| 国产精品久久久久久搜索| 97精品视频在线播放| 欧美精品videosex牲欧美| 国产成人一区三区| 亚洲视频在线观看| 久久国产天堂福利天堂| 色偷偷噜噜噜亚洲男人| 8x拔播拔播x8国产精品| 久久综合五月天| 亚洲国产精品人久久电影| 色天天综合狠狠色| 色系列之999| 久久亚洲精品国产亚洲老地址| 欧美在线观看网址综合| 亚洲午夜女主播在线直播| 精品香蕉在线观看视频一| 欧美人交a欧美精品| 成人免费看吃奶视频网站| 91日韩在线视频| 成人黄色av网站| 色哟哟入口国产精品| 欧美国产日本高清在线| 欧洲成人午夜免费大片| 欧美大肥婆大肥bbbbb| 岛国视频午夜一区免费在线观看| 福利视频导航一区| 国产亚洲视频中文字幕视频| 92福利视频午夜1000合集在线观看| 久久国产一区二区三区| 欧美性做爰毛片| 国产情人节一区| 91精品中国老女人| 这里只有精品视频在线| 亚洲理论电影网| 国产国语刺激对白av不卡| 精品国产一区久久久| 亚洲综合中文字幕在线观看| 国产精品久久久久久久久免费| 91香蕉嫩草影院入口| 亚洲人a成www在线影院| 日本免费一区二区三区视频观看| 国产成人精品综合久久久| 欧美在线亚洲在线| 国产欧美在线视频| 国产精品精品视频一区二区三区| 久久久久久久久中文字幕| www亚洲精品| 精品国产一区二区三区久久狼黑人| 青草成人免费视频| 青青久久av北条麻妃海外网| 国产婷婷色综合av蜜臀av| 成人在线视频网| 国产精品va在线| 日韩黄在线观看| 国产日韩精品在线| 国产视频观看一区| 日韩午夜在线视频| 国产精品久久中文| 国产狼人综合免费视频| 欧美日韩综合视频| 国产精品一区二区av影院萌芽| 88国产精品欧美一区二区三区| 亚洲精品美女久久久| 日韩久久免费视频| 成人精品aaaa网站| 久久久久久亚洲精品不卡| 欧美激情视频网| 亚洲免费中文字幕| 国产精品狼人色视频一区| 亚洲自拍偷拍区| 中文字幕综合在线| 国内偷自视频区视频综合| 日韩在线视频免费观看高清中文| 91深夜福利视频| 欧美乱大交xxxxx另类电影| 久久久久久久久综合| 永久免费精品影视网站| 成人乱人伦精品视频在线观看| 日韩在线高清视频| 成人黄色片网站|