国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

企業版JavaBean討論

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

  安裝EJB運行和開發環境
  EJB必須要在EJB容器內執行。所以,我們必須安裝一個符合J2EE標準的EJB容器。為了幫助我們部署自己的EJB,我們還需要一個部署工具。來自Sun的、對J2EE的參考實現包含了一個EJB容器和一個EJB部署工具。這個J2EE參考實現能夠在Sun發布的J2EE開發工具包里找到。
  
  J2EE開發包要依靠java 2 SDK、標準版(Standard Edition,J2SE)的開發包,所以你也需要把它下載下來。你需要J2SE SDK 來運行參照實現的J2EE服務器,并創建和運行EJB應用程序。
  
  一旦你下載了開發包,你就要安裝它們,并為每個開發包選擇理想的位置。你要先定義一個叫作JAVA_HOME的環境變量,并將它指向J2SE開發包的安裝目錄。然后,定義一個叫做J2EE_HOME的環境變量,并把它指向J2EE開發包的安裝目錄。
  
  現在你就預備好開始編寫你的EJB了。
  
  編寫一個簡單會話EJB
  開發一個EJB所涉及的大多數步驟和概念和我們開發傳統的Java對象(plain-old Java object,POJO)所使用的是相同的,只有少數的不同之處。下面就是開發和部署EJB的一個基本步驟:
  
  1. 為你的EJB編寫類和接口。
  
  2. 為你的EJB編寫部署描述符。
  
  3. 將EJB和相關聯的文件打包進一個jar文件。
  
  4. 部署EJB。
  
  會話bean有兩種不同的類型。在我們開始編寫代碼之前,讓我們來看看它們之間的相同之處和不同之處。
  
  狀態會話EJB概述
  狀態會話EJB會在單個會話期間維持一種和客戶端的對話狀態。這就表示狀態會話EJB能夠在單個會話期間,維持從一個客戶端跨越多個調用的實例變量。
  
  一旦客戶端完成了同EJB的交互操作,而且EJB輕易刪除了EJB,那么EJB的會話就會結束,用于EJB的所有狀態數據都會被刪除。
  
  無狀態會話EJB概述
  無狀態會話EJB不會為每個單獨的客戶端都維持一個對話狀態。對無狀態會話EJB的每次調用,都應該被當作是對一個全新的對象實例的請求。因為任何實例-變量狀態都會在調用之間丟失。
  
  無狀態會話EJB不會被EJB容器保存到第二存儲地里,所以程序員必須要知道:每個客戶端的每次調用之間的所有數據都是瞬時的。無狀態會話EJB的瞬時特性答應EJB容器重復使用EJB實例,因此經常會優化EJB的性能。
  
  會話Bean之間的關系
  圖A說明了EJB客戶端、EJB容器和幾個會話EJB之間的關系。
  
企業版JavaBean討論

  會話EJB包括至少三個強制類/接口。第一個強制類/接口是Component接口。Component接口定義了一些對EJB來說是可視的商業方法,它必須擴展javax.ejb.EJBObject。
  
  這里我們會舉個例子,實現一個非常簡單的無狀態會話EJB,它會在一個叫作getBalance的方法里返回帳目結算。我們Component接口的代碼如下:
  package com.jeffhanson.ejb;
  
  public interface Account extends javax.ejb.EJBObject, java.rmi.Remote
  {
  public String getBalance() throws java.rmi.RemoteException;
  }
  
  第二個強制類/接口是Home接口。Home接口被EJB客戶端用來獲取對Bean的組件接口的參照,它必須擴展javax.ejb.EJBHome。我們Home接口的代碼如下:
  package com.jeffhanson.ejb;
  
  public interface AccountHome extends javax.ejb.EJBHome
  {
  public Account create() throws javax.ejb.CreateException,
                 java.rmi.RemoteException;
  }
  
  第三個強制類/接口是EnterPRise Bean類。Enterprise Bean類為Component接口和Home接口提供實現。用于會話EJB的Enterprise Bean類必須要實現javax.ejb.sessionBean接口。我們Enterprise Bean類的代碼如下:
  package com.jeffhanson.ejb;
  
  public class AccountBean
  implements javax.ejb.SessionBean
  {
  private javax.ejb.SessionContextctx;
  
  public void ejbActivate() {}
  
  public void ejbCreate() {}
  
  public void ejbRemove() {}
  
  public void ejbPassivate() {}
  
  public void setSessionContext(javax.ejb.SessionContextctx)
  { 
   this.ctx = ctx;
  }
  
  // business method
  public String getBalance()
   throws java.rmi.RemoteException
  {
   String balance = dataObj.getAccountBalance();
   return(balance);
  }
  }
  
  結語
  在本文里,我們通過帶你嘗試了一個簡單的無狀態會話EJB實現的細節,盡力減輕了你可能有的對創建自己第一個EJB的懼怕感。在下一篇文章里,我們將探討實體bean的細節,以及它們如何被用來封裝數據實體,即商業對象訪問的內容。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 于都县| 壤塘县| 内乡县| 兴和县| 阿拉善盟| 淮滨县| 乌什县| 湘潭县| 乌兰县| 德格县| 阿合奇县| 九台市| 昌图县| 锦州市| 竹北市| 普格县| 东光县| 社会| 吐鲁番市| 灵石县| 道孚县| 读书| 木兰县| 萨嘎县| 黑山县| 呼和浩特市| 红安县| 宜川县| 龙岩市| 长岭县| 北辰区| 灵台县| 屏边| 江达县| 广丰县| 山阴县| 虞城县| 南漳县| 安化县| 山东省| 建宁县|