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

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

EJB核心技術及其應用(2)

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

  EJB核心技術及其應用(2)

四、開發EJB

1、類介紹:
   開發EJB的主要步驟一般來說,整個的開發步驟(開發,配置,組裝)包括如下幾個方面。開發:首先要定義三個類:Bean類本身,Bean的本地和遠程接口類。 配置:配置包括產生配置描述器--這是一個xml文件、聲明了EnterPRise Bean的屬性、綁定了bean的class文件(包括stub文件和skeleton文件)。最后將這些配置都放到一個jar文件中。還需要在配置器中定義環境屬性。組裝應用程序:包括將Enterprise beans安裝到Server服務器中,測試各層的連接情況。程序組裝器將若干個Enterprise Beans與其它的組件結合起來。組合成一個完整的應用程序。或者將若干個Enterprise beans組合成一個復雜的Enterprise Bean。治理Enterprise Bean。

   我們必須定義和編寫一些EJB中的基本類。如Enterprise bean類:這是Enterprise bean內部應用邏輯的實現。編寫Enterprise bean的遠程接口類。編寫Enterprise bean的本地接口類。說明主鍵類,主鍵類只是對于Entity bean才需要的。在Enterprise bean的配置描述器中指定主鍵的名字。Enterprise beans提供者定義了遠程接口和本地接口,實現了EJB類本身。Remote接口中提供了客戶調用EJB實現的應用邏輯函數的接口。而home接口提供了產生和定位remote接口實例的方法。

   在Enterprise bean本身類的實現,本地home接口,遠程remote接口之間并沒有正式的聯系(例如繼續關系)。但是,在三個類里聲明的方法卻必須遵守EJB里面定義的規范。例如: 你在Enterprise bean里面聲明了一個應用程序的方法或者說應用邏輯。也在beans的remote接口中聲明了這個方法,那么,這兩個地方必須要同樣的名字。Bean的實現里面必須至少有一個Create()方法:ejbCreate()。但是可以有多個帶有不同參數的create()方法。  在home接口中,也必須有相同的方法定義(參數的個數相同)。EjbCreate()方法返回的一個容器治理的持久對象。它們都返回一個容器治理持久性的主鍵值。但是,在home的相應的Create()方法中返回值的類型是remote接口。

   注重:實體bean的實現的ejbCreate方法有點不同。實體bean可以不定義ejbCreate方法。假如實體只是通過應用程序或通過數據庫治理程序的途徑被加到數據庫中,實體bean就省略了ejbCreate方法。EjbCreate返回的值是主鍵類型。假如ejbCreate方法是容器治理持久性的實體bean的方法,它的返回值就是NULL類型。假如實體bean實現了Bean治理的持久性,ejbCreate方法就返回值類型就是主鍵類型。容器的任務是把各接口和Enterprise bean的實現類結合起來。保證在編譯時和運行時,各接口和實現類是相對應的。

   EJB的實現類,各接口要從不同的基類中繼續下來。一個會話bean必須實現基類javax.ejb.sessionBean。而實體bean必須實現基類javax.ejb.EntiyBean。這些EJB的基類都是從javax.ejb.EnterpriseBean繼續而來。而javax.ejb.EnterpriseBean又是從java.io.Serializable繼續而來。每一個Enterprise Bean都必須有一個remote接口。Remote接口定義了應用程序規定客戶可以調用的邏輯操作。這些是一些可以由客戶調用的公共的方法,通常由Enterprise beans類來實現。注重,Enterprise bean的客戶并不直接訪問Bean。而是通過remote接口來訪問。Enterprise bean類的remote接口擴展了javax.ejb.EJBObject類的公共java接口。而Javax.ejb.EJBObject是所有remote接口的基類。其代碼如下:
package javax.ejb;
public interface EJBObject extends java.rmi.Remote{
public EJBHome getEJBHome() throws java.rmi.RemoteException;
public Object getPrimaryKey() throws java.rmi.RemoteException;
public void Remove() throws java.rmi.RemtoeException, java.rmi.RemoveException
public Handle getHandle() throws java.rmi.RemoteException;
boolean isIdentical (EJBObject p0) throws java.rmi.RemoteException;
}
   getEJBHome()方法答應你取得一個相關的Home接口。對于 實體Bean,用getPrimaryKey()方法獲得實體Bean的主鍵值。Remove()可以刪除一個Enterprise bean。具體的語義在各種不同類型的enterprise beans的生命周期中,由上下文中解釋的。方法getHandle()返回了一個Enterprise bean實例的持久的句柄。IsIndentical()方法答應你去比較Enterprise beans是否相同。

2、方法:
   所有的remote接口中的方法必須聲明為公共(public)的,并必須拋出java.rmi.RemotException異常。另外,所有的remote接口中的方法定義的參數和都必須是在RMI-IIOP中有效的。對每一個在remote接口中定義的方法,在Enterprise bean 類里面都要有相應的方法。相應的方法必須要有同樣的名字,同樣類型和數量的參數,同樣的返回值,而且還要拋出同樣的例外。 如下代碼顯示了一個ATM例子的會話bean的remote接口Atm,。里面聲明了一個應用方法transfer()。黑體部分表示EJB規范中必須要有的內容。Remote接口必須擴展javax.ejb.EJBObject類。從客戶端調用的Enterprise bean的每一個方法都必須在remote接口中聲明。Transfer()方法拋出了兩個意外。其中InSufficientFundsException例外是應用程序定義的意外。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禹城市| 鄂温| 炎陵县| 新宾| 寻乌县| 南木林县| 忻州市| 麦盖提县| 观塘区| 荆门市| 辽中县| 吉木萨尔县| 远安县| 清苑县| 陆川县| 平遥县| 泾阳县| 昆山市| 聂荣县| 娱乐| 锡林浩特市| 乐安县| 荣昌县| 太康县| 柞水县| 且末县| 芦山县| 汝阳县| 肇东市| 故城县| 高陵县| 绥芬河市| 五河县| 玉树县| 新沂市| 兴仁县| 蒲江县| 子洲县| 永川市| 昭通市| 虞城县|