国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

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

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

更新時間:2022-04-26 文章作者:未知 信息來源:網絡 閱讀次數:

四、開發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例外是應用程序定義的意外。
Public interface Atm extends javax.ejb.EJBObject{
Public void transfer(String Source, String Target, float amount)
Throws java.rmi.RemoteException, InSufficientFundsException;
}
  Home接口必須定義一個或多個的Create()方法。每一個這樣的Create()方法都必須命名為Create。并且,它的參數,不管是類型還是數量都必須與bean類里面的ejbCreate()方法對應。注意,home接口中的Create()方法和bean類中ejbCreate()方法的返回值類型是不同的。實體bean的home接口還包含find()方法。 每一個Home接口都擴展了javax.ejb.EJBHome接口。如下代碼顯示了javax.ejb.EJBHome接口的定義:
package javax.ejb;
public interface EJBHome extends java.rmi.Remote() {
void remove(Handle handle) throws java.rmi.RemoteException,RemoveException;
void remove(Object primarykey) throws java.rmi.RemoteException,RemoveException;
EJBMetaData getEJBMetaData() throws RemoteException;
Homehandle getHomeHandle() throws RemoteException;
}
  這里提供了兩個remove()方法來刪除Enterprise bean的實例。第一個remove方法是通過句柄來刪除一個Enterprise bean的實例。第二個remove方法通過主鍵來刪除一個Enterprise bean的實例。 在眾多的Enterprise bean實例中,句柄唯一的標識一個實例。一個句柄與它引用的Enterprise bean有相同的生命期。考慮一個實體對象,客戶可以通過一個句柄來重新獲得相應的Enterprise bean的實例。一個句柄能夠對應一個Enterprise bean對象的多個實例。例如,即使當Enterprise bean對象所在的主機崩潰了,或者Enterprise bean對象在不同的機器之間移動,句柄仍是有效的。這里的句柄是Serialized句柄,與CORBA中的字符串化的CORBA對象的引用是相似的概念。在EJBHome接口中的第二個remove操作通過其主鍵來決定要刪除的Enterprise bean。主鍵可以是擴展了Java Object類的任何類型,但是,必須要實現Java的Serializable接口。主鍵是標識實體bean的主要的方法。通常,主鍵是數據庫中的一個關鍵字,唯一的定義了由實體bean代表的數據。
  方法getEJBMetaData()返回了Enterprise bean對象的metadata接口。這個接口允許客戶獲得Enterprise bean的metadata信息。當開發工具來編譯鏈接應用程序的時候,或者配置工具來配置的時候,可能會用到metadata信息。Javax.ejb.EJBMetadata接口提供了獲得javax.ejb.EJBHome接口,home類,remote接口,還有獲得主鍵的方法。也提供了一個isSesson()的方法來確定在放這個home接口的對象是會話bean還是實體bean。  IsStatelessSession()方法指示這個會話bean是有狀態還是無狀態的。如下代碼顯示了javax.ejb.EJBMetadata接口的定義部分的代碼。
Public javax.ejb; Public interface EJBMetaData{
EJBHome getEJBHome();
Class getHomeInterfaceClass();
Class getRemoteInterfaceClasss();
Class getPrimaryKeyClass();
Boolean isSession();
Boolean isStatelesssSession();
}
  對每一個Create()方法,EJB規范定義了如下的命名約定。它的返回值是會話bean的remote接口的類型。方法的名字只能是Create()。對會話bean類中的每一個ejbCreate()方法都必須有一個Create()與之對應。 對于每一個Create()方法的參數的類型和數量都必須與會話bean類中的ejbCreate()方法相對應。方法必須拋出java.rmi.RemoteException例外。 方法必須拋出javax.rmi.CreateExeption例外。 Create()方法的參數是用來初始化新的會話bean對象的。 如下代碼顯示了一個會話bean對象的不同的Create()方法,其中必須的部分用粗體顯示:
public interface AtmHome extends javax.ejb.EJBHome{
Atm create() throws java.rmi.RemoteException,javax.ejb.CreateException;
Atm create(Profile preferredProfile)
Throws java.rmi.RemoteExeption,javax.ehrows java.rmi.RemoteException,RemoveException;
EJBMetaData getEJBMetaData() throws RemoteException;
Homehandle getHomeHandle() throws RemoteException;
}
  這里提供了兩個remove()方法來刪除Enterprise bean的實例。第一個remove方法是通過句柄來刪除一個Enterprise bean的實例。第二個remove方法通過主鍵來刪除一個Enterprise bean的實例。在眾多的Enterprise bean實例中,句柄唯一的標識一個實例。一個句柄與它引用的Enterprise bean有相同的生命期。考慮一個實體對象,客戶可以通過一個句柄來重新獲得相應的Enterprise bean的實例。一個句柄能夠對應一個Enterprise bean對象的多個實例。例如,即使當Enterprise bean對象所在的主機崩潰了,或者Enterprise bean對象在不同的機器之間移動,句柄仍是有效的。這里的句柄是Serialized句柄,與CORBA中的字符串化的CORBA對象的引用是相似的概念。
  在EJBHome接口中的第二個remove操作通過其主鍵來決定要刪除的Enterprise bean。主鍵可以是擴展了Java Object類的任何類型,但是,必須要實現Java的Serializable接口。主鍵是標識實體bean的主要的方法。通常,主鍵是數據庫中的一個關鍵字,唯一的定義了由實體bean代表的數據。方法getEJBMetaData()返回了Enterprise bean對象的metadata接口。這個接口允許客戶獲得Enterprise bean的metadata信息。當開發工具來編譯鏈接應用程序的時候,或者配置工具來配置的時候,可能會用到metadata信息。Javax.ejb.EJBMetadata接口提供了獲得javax.ejb.EJBHome接口,home類,remote接口,還有獲得主鍵的方法。也提供了一個isSesson()的方法來確定在放這個home接口的對象是會話bean還是實體bean。IsStatelessSession()方法指示這個會話bean是有狀態還是無狀態的。如下代碼顯示了javax.ejb.EJBMetadata接口的定義部分的代碼。
Public javax.ejb;
Public interface EJBMetaData{
EJBHome getEJBHome();
Class getHomeInterfaceClass();
Class getRemoteInterfaceClasss();
Class getPrimaryKeyClass();
Boolean isSession();
Boolean isStatelesssSession();
}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        亚洲美女偷拍久久| 日韩欧美一区二区久久婷婷| 欧美影院精品一区| 一区二区三区中文字幕电影| 在线观看亚洲精品| 亚洲最新视频在线观看| 欧美日韩你懂的| 精品影视av免费| 国产精品久久久久久久久免费丝袜| www.亚洲激情.com| 婷婷一区二区三区| 国产视频亚洲色图| 欧美少妇bbb| 韩国成人精品a∨在线观看| 欧美韩国日本不卡| 欧美日韩高清一区二区不卡| 国产精品一区一区三区| 亚洲最大成人网4388xx| 精品国产免费人成电影在线观看四季| 国产精品123区| 亚洲国产成人tv| 欧美激情在线一区二区| 欧美福利视频一区| 91丨九色丨蝌蚪丨老版| 蜜臀va亚洲va欧美va天堂| 中文字幕永久在线不卡| 日韩精品一区二区三区视频 | 色哟哟欧美精品| 青青草97国产精品免费观看| 国产农村妇女毛片精品久久麻豆 | 国产精品久久久99| 欧美日韩国产免费一区二区| 国产乱人伦精品一区二区在线观看| 曰韩精品一区二区| 国产欧美一区二区精品忘忧草 | 欧美激情中文不卡| 欧美一区二区三区免费视频| 91色在线porny| 国产另类ts人妖一区二区| 亚洲777理论| 亚洲综合在线电影| 国产精品精品国产色婷婷| 久久久精品日韩欧美| 欧美一区二区黄色| 在线电影院国产精品| 日本高清不卡视频| av一二三不卡影片| 国产精品1区2区3区在线观看| 日韩国产精品大片| 偷拍与自拍一区| 一区二区三区不卡视频在线观看| 国产精品人成在线观看免费| 久久综合九色欧美综合狠狠 | 精品国产一区二区三区av性色| 欧美三片在线视频观看| 欧美羞羞免费网站| 欧美性感一区二区三区| 欧美无砖专区一中文字| 欧美自拍偷拍一区| 色婷婷精品大视频在线蜜桃视频| 91在线视频免费观看| 91丨porny丨中文| 日本乱码高清不卡字幕| 在线观看亚洲a| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 91一区二区在线| 色婷婷亚洲一区二区三区| 在线一区二区三区| 欧美精品三级在线观看| 日韩午夜精品电影| 久久影院电视剧免费观看| 国产日韩av一区| 亚洲男同性视频| 亚洲成人在线免费| 免费在线观看一区| 国产黄色精品视频| 色噜噜狠狠色综合欧洲selulu| 欧美色图12p| 精品国产网站在线观看| 中文字幕精品综合| 亚洲自拍欧美精品| 精品在线免费观看| 972aa.com艺术欧美| 欧美日韩国产一级二级| 久久亚洲精品国产精品紫薇| 国产精品你懂的在线欣赏| 亚洲宅男天堂在线观看无病毒| 日本美女一区二区| 成人av午夜电影| 欧美一激情一区二区三区| 国产精品久久久久久久蜜臀| 午夜影院久久久| 国产成a人亚洲| 欧美绝品在线观看成人午夜影视| 久久久美女毛片| 亚洲高清在线精品| 成人黄动漫网站免费app| 欧美精品久久久久久久久老牛影院 | 亚洲电影一级黄| 国产一区二区导航在线播放| 欧美中文字幕久久| 欧美国产一区二区在线观看| 亚洲aaa精品| 91香蕉视频污| 国产亚洲欧洲997久久综合 | 91久久精品一区二区三区| 欧美草草影院在线视频| 亚洲制服丝袜在线| www.欧美亚洲| 国产日产欧美一区| 狠狠网亚洲精品| 欧美一级片在线看| 亚洲第一会所有码转帖| 一本一道波多野结衣一区二区| 国产亚洲一区二区三区四区| 日本中文一区二区三区| 欧美亚男人的天堂| 亚洲麻豆国产自偷在线| av色综合久久天堂av综合| 国产欧美一区二区三区鸳鸯浴| 久久99久久精品欧美| 337p亚洲精品色噜噜| 亚洲图片欧美视频| 在线国产亚洲欧美| 亚洲精品欧美综合四区| www.视频一区| 中文字幕一区二区三| 偷拍与自拍一区| 欧美日韩一级黄| 亚洲主播在线观看| 欧美午夜电影在线播放| 一区二区三区四区乱视频| 91丨porny丨中文| 亚洲美女屁股眼交3| 色偷偷一区二区三区| 亚洲精品五月天| 在线观看国产一区二区| 亚洲妇女屁股眼交7| 欧美精品第1页| 久久精品国产成人一区二区三区 | 三级精品在线观看| 欧美日韩你懂得| 日本不卡视频一二三区| 欧美一卡二卡三卡四卡| 精品无人码麻豆乱码1区2区 | 国产99久久久久| 国产精品久久午夜夜伦鲁鲁| 91丨九色丨尤物| 亚洲电影一区二区三区| 91精品久久久久久久久99蜜臂| 日韩激情中文字幕| 精品国产乱子伦一区| 成人av网站免费观看| 一区二区在线免费| 91精品欧美综合在线观看最新| 久久精品国产亚洲5555| 久久无码av三级| 91网站最新地址| 日韩二区在线观看| 国产女同互慰高潮91漫画| 色综合久久88色综合天天6| 亚洲mv在线观看| 久久精品一区蜜桃臀影院| 91亚洲精品乱码久久久久久蜜桃| 夜夜嗨av一区二区三区中文字幕| 91精品国产综合久久精品性色| 国产精品66部| 亚洲国产精品一区二区久久| 欧美tickling挠脚心丨vk| 成人精品国产一区二区4080| 亚洲欧美另类小说| 精品少妇一区二区三区日产乱码| 成人做爰69片免费看网站| 亚洲影院免费观看| 成人网男人的天堂| 性久久久久久久| 亚洲国产岛国毛片在线| 5858s免费视频成人| 成人理论电影网| 美女一区二区视频| 亚洲男人的天堂在线观看| 欧美va亚洲va| 精品视频在线视频| 成人黄色电影在线| 狠狠网亚洲精品| 亚洲成a人片在线观看中文| 欧美激情综合五月色丁香| 欧美一级黄色大片| 91原创在线视频| 成人精品视频.| 国产传媒一区在线| 国产一区二区三区四区五区美女| 日韩av成人高清| 日韩影院免费视频| 亚洲一线二线三线久久久| 日韩理论片在线| 亚洲天堂福利av| 亚洲日本一区二区| 国产精品美女久久久久av爽李琼| 精品国产电影一区二区|