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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Enterprise JavaBeans 組件慨述之三

2019-11-18 11:32:24
字體:
供稿:網(wǎng)友

本文轉(zhuǎn)自IBM developerWorks 中國網(wǎng)站

布署和使用 EnterPRise javaBeans 組件



  本文的第 3 部分說明 Enterprise JavaBeans 組件的部署過程,部署并不僅僅是安裝,因?yàn)樗ǔ_€涉及代碼生成。部署還使用了一個(gè)非凡的部署描述符文件,此文件支持控制企業(yè)級(jí) bean 行為(如某個(gè) bean 是否需要事務(wù))的參數(shù)。bean 部署的這一特性支持 bean 行為的說明性、綱領(lǐng)性規(guī)范的 EJB 目標(biāo)。第 3 部分還比較了持久性的兩種主要類型,bean 治理式持久性和容器治理式持久性,并討論了 EJB 組件與 CORBA 的關(guān)系。同時(shí)還給出了一個(gè)簡單的三層 EJB 應(yīng)用程序。

  部署過程

  Enterprise JavaBeans (EJB) 組件是在稱為部署的特定過程中安裝的。由容器組件提供對(duì)部署過程的支持。在高級(jí)別上,部署由下列步驟組成:

  bean 的開發(fā)人員創(chuàng)建必需的類文件、接口文件和控制信息。

  容器分析輸入文件并生成必要的類。

  容器將條目添加到指向本地對(duì)象的 JNDI 命名空間中。

  EJB 組件的開發(fā)人員編寫 bean 的 Java 源文件,此文件包含為這個(gè) bean 提供功能的業(yè)務(wù)邏輯方法,還包括 ejbCreate() 方法。bean 類還必須實(shí)現(xiàn) javax.ejb.sessionBean 接口或 javax.ejb.EntityBean 接口。此外,bean 的開發(fā)人員編寫接口文件,定義對(duì) javax.ejb.EJBHome 接口和 javax.ejb.EJBObject 接口的擴(kuò)展。EJBHome 接口的擴(kuò)展,稱為 bean 的本地接口,包含一個(gè)創(chuàng)建方法,并且假如 bean 是一個(gè)實(shí)體 bean,它還會(huì)包含一個(gè) finder 方法。EJBObject 接口的擴(kuò)展,稱為 bean 的遠(yuǎn)程接口,指定在 bean 本身中定義的業(yè)務(wù)邏輯方法。

  bean 的開發(fā)人員提供由部署描述符、環(huán)境屬性和清單式文件組成的控制信息。

  部署描述符是 javax.ejb.deployment.SessionDescriptor 對(duì)象或 javax.ejb.deployment.EntityDescriptor 對(duì)象的序列化實(shí)例。

  環(huán)境屬性作為鍵-值對(duì)存儲(chǔ)在一個(gè)文件中,可通過 java.util.Properties 對(duì)象訪問此文件。

  清單式文件是標(biāo)識(shí)企業(yè)級(jí) bean 及其相關(guān)文件所必需的。

  企業(yè)級(jí) bean 的類文件、這兩個(gè)接口的類文件、部署描述符文件、環(huán)境屬性文件和清單式文件都是使用名為 ejb-jar 的文件格式歸檔的。所生成的 ejb-jar 文件提供給容器,作為部署過程的輸入。

  在部署時(shí),容器分析 ejb-jar 文件的內(nèi)容,并采取必要的操作使此 bean 可用。這些操作包括:生成實(shí)現(xiàn) bean 的本地和遠(yuǎn)程接口的新 Java 類,將本地接口實(shí)現(xiàn)綁定到 JNDI 命名空間中,生成樁模塊和 skeleton helper 類,后者是支持 RMI 通信所必需的。容器也可以生成 bean 的子類,并入容器專用的代碼,以方便對(duì) bean 的治理。部署時(shí)由容器生成的類通常是容器專用的,而不像 EJB 組件本身那樣具有可移植性。

  持久性、事務(wù)和安全

  在為 EJB 組件提供持久性、事務(wù)和安全服務(wù)方面,EJB 容器可扮演主要角色。是將這些服務(wù)的職責(zé)指定給容器,還是假定職責(zé)由 bean 自身負(fù)責(zé),EJB 規(guī)范為 bean 的開發(fā)人員提供了靈活性。例如,對(duì)實(shí)體 bean 的持久性支持既可以由 bean 治理,也可以由容器治理。假如 EJB 組件開發(fā)人員選擇使用容器治理式持久性,他們就會(huì)在部署描述符中添加一個(gè)稱為 containerManagedFields 的屬性。根據(jù) EJB 規(guī)范:

  “containerManagedFields 屬性的值是一個(gè)實(shí)例字段列表,企業(yè)級(jí) bean 提供者希望,容器通過從數(shù)據(jù)庫加載或?qū)⑵浯鎯?chǔ)到數(shù)據(jù)庫,來治理這些實(shí)例字段。企業(yè)級(jí) bean 代碼不應(yīng)該包含任何數(shù)據(jù)庫訪問調(diào)用 -- 數(shù)據(jù)庫訪問調(diào)用將由容器工具在部署時(shí)生成。

  “專用于提供容器治理式持久性支持的容器,通常將提供豐富的部署時(shí)工具,以答應(yīng)企業(yè)級(jí) bean 部署者建立實(shí)例字段到基礎(chǔ)數(shù)據(jù)源的映射。一般認(rèn)為,盡管容器提供者的工具簡化了映射進(jìn)程,但映射進(jìn)程仍可能涉及到 bean 部署者(即映射進(jìn)程不是全自動(dòng)的)。”(Enterprise JavaBeans Specification 1.0)

  除了支持容器治理式持久性以外,EJB 體系結(jié)構(gòu)還支持容器對(duì)事務(wù)的治理。該規(guī)范規(guī)定:

  “Enterprise JavaBeans 是一種高級(jí)組件框架,它試圖使應(yīng)用程序開發(fā)人員不面對(duì)系統(tǒng)的復(fù)雜性。因此,大多數(shù)企業(yè)級(jí) bean 及其客戶機(jī)不需要通過程序訪問事務(wù)治理。”(Enterprise JavaBeans Specification 1.0)

  當(dāng) bean 的開發(fā)人員依靠容器進(jìn)行事務(wù)治理時(shí),就稱為容器治理式定界,容器使用在部署時(shí)提供的事務(wù)屬性:

  “無論客戶機(jī)何時(shí)調(diào)用企業(yè)級(jí) bean,容器都會(huì)介入這個(gè)方法調(diào)用。這種介入答應(yīng)容器通過事務(wù)屬性顯式控制事務(wù)定界。例如,假如企業(yè)級(jí) bean 部署了 TX_REQUIRED 事務(wù)屬性,則無論何時(shí),只要客戶機(jī)調(diào)用支持事務(wù)的企業(yè)級(jí) bean,容器就會(huì)自動(dòng)啟動(dòng)事務(wù),而客戶機(jī)并不與任何事務(wù)上下文相關(guān)聯(lián)。”(Enterprise JavaBeans Specification 1.0)

  假如開發(fā)人員選擇在 bean 內(nèi)支持事務(wù),則他們?cè)诓渴鹈枋龇兄付?TX_BEAN_MANAGED 事務(wù)屬性,然后就可以在 bean 自身內(nèi)部自由使用 javax.transaction.UserTransaction 接口劃分事務(wù)邊界。通過認(rèn)出 TX_BEAN_MANAGED 事務(wù)屬性,容器就能知道不必介入事務(wù)支持。

  通過增強(qiáng) accessControlEntry 對(duì)象和 RunAs 安全標(biāo)識(shí)中指定的限制,容器為 EJB 組件提供安全支持。AccessControlEntry 對(duì)象在 bean 級(jí)別上或針對(duì)單個(gè)方法,將 Identity 對(duì)象與企業(yè)級(jí) bean 相關(guān)聯(lián)。Identity 對(duì)象反映答應(yīng)調(diào)用 bean 的方法的用戶或角色。當(dāng)容器試圖訪問數(shù)據(jù)源或另一個(gè) bean 時(shí),它們也會(huì)將 RunAs 安全身份應(yīng)用于 EJB 組件。可將 RunAs 身份設(shè)置為等同于某個(gè)特定用戶帳戶、有權(quán)限的系統(tǒng)帳戶或客戶機(jī)安全身份。訪問控制和 RunAs 的信息是 bean 的開發(fā)人員在部署描述符中指定的,將影響容器治理 bean 的與安全有關(guān)的行為方式。

  雖然 EJB 1.0 規(guī)范也提到安全問題,但更具體的安全功能定義,見該規(guī)范的后續(xù)版本。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 康保县| 益阳市| 连南| 平远县| 渭源县| 肇东市| 高阳县| 海伦市| 清涧县| 西和县| 仙游县| 大理市| 通榆县| 葫芦岛市| 广宁县| 丁青县| 曲水县| 英山县| 邓州市| 抚远县| 麟游县| 临沂市| 东城区| 贺兰县| 渝北区| 凌源市| 通许县| 吴川市| 黔西县| 台北县| 元江| 大化| 湘潭市| 政和县| 襄汾县| 桐梓县| 奉节县| 寻甸| 靖州| 岑巩县| 富民县|