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

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

開發實體EJB 增強的性能和開發

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

  EnterPRise javaBean (EJB) 是一些應用程序組件,它們實現了 EJB 體系結構規范,并且是 Java 2 Enterprise Edition (J2EE) 平臺的一部分。EJB 是開發和部署分布式的、可伸縮的、事務型的、安全的、可移植的、基于組件的商業應用的理想選擇。
  
  Enterprise JavaBean (EJB)是一些應用程序組件,它們實現了EJB體系結構規范,并且是Java 2 Enterprise Edition (J2EE) 平臺的一部分。EJB是開發和部署分布式的、可伸縮的、事務型的、安全的、可移植的、基于組件的商業應用的理想選擇。
  
  基于EJB的商業應用需要一個EJB容器,用于運行時的執行。所有遵從J2EE規范的應用服務器,包括WebLogic 8.1在內,都提供了EJB容器。
  
  EJB體系結構背后的主要動機是關系的分離:它將與應用程序基礎設施相關的部分(例如事務處理和安全性)與核心應用程序部分(例如業務邏輯)分離開來。簡言之,EJB體系結構通過指定EJB容器與EJB開發者之間職責的區別,從而達到這種關系上的分離。例如,透明地實現事務處理是EJB容器的職責,而實現業務邏輯則應由EJB開發者負責。雖然EJB容器執行任務時可能需要某些線索(hint),但是,比起實際地實現這些與基礎設施相關的活動來,提供這類線索(通過基于xml的部署描述符)的代價是非常少的??傊?,這種關系分離的策略使得商業應用的開發比其他方式要高效得多。
  
  EJB體系結構規范有4種版本:1.0、1.1、2.0和2.1。事實上,EJB version 1.0已經過時了,而最新版本,即2.1,由于剛剛才出現,所以還沒有廣泛提供。BEA WebLogic Server 8.1同時支持1.1和2.0這兩種版本。我們強烈建議在WebLogic Server 8.1中進行開發時使用EJB version 2.0。
  
  實體bean是一種EJB。除了EJB背后的一般動機外,使用實體bean的特定動機是為持久存儲中的業務域(business-domain)實體提供一種駐留在內存中的、可共享的、面向對象的視圖。通常,業務域對象就是關系數據庫中一個表里面的一行。在本文中,我們討論了關于在WebLogic Server 8.1環境下Entity EJB的設計、開發和部署的特定問題。至于關于EJB技術的綜合教程,我們推薦http://java.sun.com/j2ee上的J2EE教程。
  
  概述
  實體bean是設計用來治理關系數據庫中的數據的。在BEA WebLogic Server 8.1環境下,Entity EJB的開發包括EJB的設計、生成、打包和部署。
  
  從設計的角度來看,實體bean可以由兩條正交軸線來分類:持久性和訪問。順著持久性這條軸線,有兩種類型的實體bean:Bean治理的持久性(Bean-managed persistence,BMP)和容器治理的持久性(Container-managed persistence,CMP)。假如是CMP,則EJB容器將治理實體bean的持久性。而對于BMP,則由實體bean的開發者通過指定的Java代碼來治理實體bean的持久性。CMP和BMP之間的選擇是互斥的。順著訪問這條軸線,又有兩種類型的bean:遠程的和本地的。遠程實體bean提供了定位的透明性,并且可以從不同的Java虛擬機上訪問。相反,本地實體bean只能在同一應用服務器內訪問。本地和遠程之間的選擇不是互斥的,因此可以設計具有雙重接口的bean。
  
  在EJB體系結構規范中,每個實體EJB組件都是由一組指定的Java類和一組指定的XML部署描述符組成。EJB的打包過程包括將所有指定的EJB Java類文件和XML部署描述符文件打包到一個Java Archive (JAR)文件中。假如實體EJB還要依靠于一些Java助手類文件,那么也可以將這樣的類文件包括到EJB JAR文件中,或者將它們單獨打包到一個不同的JAR文件中。
  
  EJB的部署可分為兩種方式,要么是在BEA WebLogic Server 8.1內直接部署EJB JAR文件以及所依靠的任何JAR文件,要么是首先將EJB jar文件和所有依靠的JAR文件打包到一個企業應用歸檔(enterprise application archive,EAR)文件內,然后再在WebLogic Server 8.1內部署這個EAR文件。
  
  設計EJB
  在設計一個實體時,需要考慮的幾個重要選擇是:
  
  是設計一個CMP實體bean還是一個BMP實體bean。
  是設計一個本地實體bean,還是設計一個遠程實體bean,抑或是設計一個雙重接口的實體bean。
  是設計一個粗粒度(coarse-grained)的實體bean,還是一個細粒度(fine-grained)的實體bean。
  是使用數據傳輸對象,還是使用get和set方法來訪問實體EJB中的數據。
  下面將討論在開發實體EJB時要面臨的這些設計選擇。
  
  CMP與BMP
  記住,雖然可能存在一些很合理的例外,但是一般情況下我們強烈推薦使用CMP這種設計。至于為什么要選擇CMP,而不是BMP,這里有三大主要原因。
  
  與BMP相比,CMP提供了跨多種不同數據庫的可移植性,因為CMP實體bean不包含任何特定于數據庫的持久性代碼。CMP易于設計、實現和維護。
  通常,CMP擁有好于BMP的性能,因為EJB容器將自動生成特定于數據庫的代碼,并且這些代碼將為目標數據庫而優化。
  CMP通過使用本地接口,使得在相關EJB的網絡中程序性地(programmatically)進行導航變得非常輕易。
  本地接口、遠程接口和雙重接口
  因為CMP通過本地接口治理著實體EJB之間的關系,所以我們強烈建議總是提供一個本地接口。我們認為遠程接口需要的時候很少,但是假如仔細評估一下就會證實遠程接口也是需要的。所以,我們還是設計一個雙重接口吧。
  
  本地接口通過本地客戶機提供了對EJB的優化的訪問;遠程方法調用(remote method invocation,RMI)的語義不要求通過本地客戶機、使用本地接口來訪問EJB。
  
  遠程客戶機與EJB容器位于不同的虛擬機上,它需要RMI和遠程接口來訪問EJB。從理論上講,單單設計一個本地實體存在著一個明顯的缺點,那就是只有在相同應用服務器內的客戶機才能訪問該實體bean。然而,這只是一個理論上的缺點,因為實際上很少需要從應用服務器之外訪問實體EJB。
  
  粗粒度與細粒度
  這是一個非常有爭議的專題,所以還應根據您個人的經驗小心地評價關于此專題的一些不同觀點。我們的選擇是,實體EJB最常用于表示應用程序業務域中各個實體,所以應該讓實體EJB盡量地細粒度,不過也應將設計限定為僅提供一個本地接口。關于這個問題的爭論始于EJB體系結構規范1.x版本,當時只能通過一個遠程接口來訪問實體EJB。建立在EJB 1.x版本基礎上的任何反對使用細粒度實體EJB的觀點,雖然當時也有合理之處,但是在EJB體系結構規范2.0 中卻已不合時宜了,并且最終遭到反對。請謹記:有些專家可能不同意我們的觀點,所以我們鼓勵您通過實驗進行考證,并在此專題上形成自己的觀點。
  
  數據傳輸對象與Get和Set方法
  這又是一個有爭議的專題。我們的觀點如下所述:
  
  在實體EJB的本地接口中暴露CMP持久字段的所有get訪問器(accessor)方法。
  為不屬于實體EJB主鍵的一部分的每個CMP持久字段創建包裝器(wrapper)set方法,并且在實體EJB的本地接口中暴露這些包裝器方法。使用這些包裝器方法背后的動機是,CMP要求所有持久字段都具有抽象方法setXXX,假如需要在這些setXXX方法內進行任何驗證,那么就可以先在包裝器方法內完成驗證,然后再調用相應的setXXX方法。假如不需要這樣的驗證,那么省掉包裝器方法而直接包括setXXX方法也無不可。
  在某些少見的環境下,可能要求實體EJB有一個遠程接口,這時可以為每個實體EJB定義一個數據傳輸對象,將該數據傳輸對象作為實體EJB的遠程接口中的一個參數,暴露其get和set方法。
  生成和打包EJB
  在EJB體系結構規范中,每個實體EJB組件都由一組指定的Java類和一組指定的XML部署描述符組成:
  
  一個必需的實現實體bean核心功能的bean類。
  一個遠程接口、本地接口或雙重接口,該接口為實體bean提供了適當的客戶機視圖。
  一個遠程主接口(home interface)、本地主接口或者雙重主接口,該接口為實體bean的生命周期治理提供了適當的接口。
  假如是具有組合主鍵的實體bean,那么還有一個必需的主鍵類。
  一個ejb-jar XML部署描述符文件,EJB體系結構規范version 2.0對此作了規定。
  一個特定于供給商的 weblogic-ejb-jar XML部署描述符文件,BEA WebLogic Server 8.1 對此有規定。
  假如是CMP實體bean,那么還應有一個特定于供給商的weblogic-cmp-rdbms-jar XML 部署描述符文件,BEA WebLogic Server 8.1對此有規定。
  這里使用的例子實體EJB是一個CMP實體EJB,它有一個遠程接口,它的名稱是AccountEJB。在隨WebLogic Server 8.1一起安裝的示例文件中,即 /weblogic81/samples/server/examples/src/examples/ejb20/basic/containerManaged目錄下,可以找到這個實體EJB。
  
  實體bean EJB類和接口可以用EJBGen工具來生成。
  
  EJBGen
  EJBGen是一種EJB 2.0代碼生成器,它能夠從一個EJB bean類生成本地接口/遠程接口、本地主接口/遠程主接口、主鍵類和部署描述符。在EJB bean類中使用EJBGen標記來指定不同的EJB設計配置(例如,本地/遠程和CMP/BMP)。在WebLogic Server 8.1 SP01 中,EJBGen 類被包括在/weblogic81/server/lib/weblogic.jar中。在WebLogic Server 8.1 SP02 & SP03中,EJBGen類被包括在/weblogic81/server/lib/ejbgen.jar文件中。將ejbgen.jar添加到Classpath中,以便使用EJBGen工具。
  
  EJBGen通過以下命令來調用:
  
  javadoc -docletpath ejbgen.jar -doclet weblogic.tools.ejbgen.EJBGen
  <EjbBeanClass>.java
  
  該命令有一些選項:
  
  -d [Directory]: 創建EJB類/接口和部署描述符時所在的目錄。
  -descriptorDir [directory]: 創建部署描述符時所在的目錄。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲日本欧美日韩高观看| 午夜精品蜜臀一区二区三区免费| 成人国产精品色哟哟| 岛国精品视频在线播放| 欧美日韩福利在线观看| 97视频在线观看成人| 97国产一区二区精品久久呦| 欧美交受高潮1| 欧美午夜影院在线视频| 欧美成人精品影院| 久久99视频免费| 疯狂做受xxxx高潮欧美日本| 91美女片黄在线观看游戏| 亚洲精品不卡在线| 日韩免费电影在线观看| 亚洲欧洲高清在线| 国产精品成久久久久三级| 午夜精品三级视频福利| 97免费视频在线播放| 国产精品久久久久久久久久久久久| 国产精品久久久久久久久久99| 国内精品中文字幕| 国产欧美日韩中文字幕| 国产丝袜精品视频| 亚洲欧美变态国产另类| 国产欧美一区二区三区在线| 欧美精品制服第一页| 亚洲久久久久久久久久久| 91高清在线免费观看| 欧美二区乱c黑人| 国产精品ⅴa在线观看h| 亚洲第一区第二区| 欧美日韩一区二区在线| 亚洲成人在线视频播放| 在线性视频日韩欧美| 色www亚洲国产张柏芝| 国产精品1234| 91久久在线视频| 日韩欧美精品免费在线| 久久精品视频播放| 亚洲精品网址在线观看| 日韩精品日韩在线观看| 欧美一级电影免费在线观看| 亚洲在线第一页| 中文亚洲视频在线| 欧美在线视频导航| 亚洲欧美国产精品久久久久久久| 欧美日韩一区二区精品| 欧美激情2020午夜免费观看| 国产精品高清免费在线观看| 91美女片黄在线观| 亚洲激情成人网| 一区二区三区四区在线观看视频| 久久九九有精品国产23| 最近的2019中文字幕免费一页| 久久视频这里只有精品| 日韩女优人人人人射在线视频| 欧美精品999| 在线日韩精品视频| 91在线中文字幕| 亚洲bt欧美bt日本bt| 国产精品av免费在线观看| 成人福利免费观看| 国产成人av在线播放| 国产精品极品美女粉嫩高清在线| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品久久久久久久久| 日韩av在线资源| 精品欧美aⅴ在线网站| 精品国产一区二区三区久久狼5月| 国产日韩在线一区| 欧美性感美女h网站在线观看免费| 国产日韩视频在线观看| 一本色道久久88综合亚洲精品ⅰ| 国产激情综合五月久久| 欧美激情三级免费| 国产精品专区一| zzijzzij亚洲日本成熟少妇| 亚洲精品在线视频| 国产精品久久久久久久久久ktv| 国产一区红桃视频| 成人a级免费视频| 91啪国产在线| 久久久久久久久91| 九九九久久久久久| 成人夜晚看av| 97福利一区二区| 国产精品电影久久久久电影网| 日本精品在线视频| 日本午夜精品理论片a级appf发布| 热re91久久精品国99热蜜臀| 欧美精品在线播放| 在线视频免费一区二区| 亚洲综合日韩中文字幕v在线| 国产精品成av人在线视午夜片| 欧美日韩国产中字| 成人久久精品视频| 成人免费xxxxx在线观看| 91久久精品国产91久久| 日韩三级成人av网| 亚洲第一区在线观看| 亚洲色图25p| 91久久久久久久| 91久久中文字幕| 国产精品1区2区在线观看| 欧美电影在线观看完整版| 青青草原成人在线视频| 久久777国产线看观看精品| 亚洲精品久久久久久久久久久久| 日韩中文第一页| 欧美激情视频给我| 国产精品户外野外| 亚洲精品一区久久久久久| 欧美激情视频给我| 精品国模在线视频| 国模gogo一区二区大胆私拍| 欧美午夜影院在线视频| 久久久久久久久久久久久久久久久久av| 亚洲xxx视频| 欧美一级淫片丝袜脚交| 欧美理论电影网| 日本欧美一二三区| 成人免费高清完整版在线观看| 日韩精品极品毛片系列视频| 欧美又大粗又爽又黄大片视频| 久久不射电影网| 欧美激情xxxxx| 国产精品18久久久久久麻辣| 亚洲欧美日韩在线一区| 日本午夜精品理论片a级appf发布| 欧美国产中文字幕| 色哟哟亚洲精品一区二区| 538国产精品视频一区二区| 国产在线视频一区| 狠狠爱在线视频一区| 色妞一区二区三区| 国产视频在线观看一区二区| 日韩女优在线播放| 国模精品一区二区三区色天香| 欧美超级乱淫片喷水| 日韩精品一区二区视频| 国产精品91免费在线| 国产成人拍精品视频午夜网站| 久热精品在线视频| 中文字幕免费精品一区| 亚洲欧洲av一区二区| 成人欧美在线视频| xxxxxxxxx欧美| 欧美黑人xxx| 96sao精品视频在线观看| 欧美激情在线狂野欧美精品| 亚洲最新中文字幕| 欧美大学生性色视频| 亚洲香蕉成人av网站在线观看| 久久精品国产久精国产一老狼| 在线观看久久久久久| 久久视频国产精品免费视频在线| www.日韩欧美| 亚洲精品短视频| 日本aⅴ大伊香蕉精品视频| 欧美成人激情视频| 欧美电影免费观看电视剧大全| 精品一区二区三区三区| 91精品国产电影|