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

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

前進:從EJB 2.1到EJB 3.0

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

  在開始討論怎樣從EJB 2.1遷移到EJB 3.0之前,有必要先了解一下遷移之后將會得到什么:主要來說,EJB 3.0減少了在創建EJB時所需的類、接口、部署描述符的數量。EJB 3.0通過用純舊式java對象(POJO)取代抽象bean類,用純舊式Java接口(POJI)取代組件與主接口(Component & Home),簡化了EJB的開發過程,在此,后者是可選項--你不必全部包含進它們。

  部署描述符--ejb-jar.xml--由其指定了EJB名、bean對象名、接口、查找者方法、容器治理關系(CMR),在此就不再需要其他與開發商相關的部署描述符了,因為已被組件類中的元數據注釋所取代。這就是你為什么需要使用JDK 5.0來開發EJB 3.0應用的原因,因為它們使用了注釋,而注釋在JDK 5.0之前不可用。

  EJB 3.0用javax.persistence.EntityManager API取代了EJB 2.1中的查找者方法,通常EJB 2.1的客戶端應用使用JNDI名來獲得一個對實體(entity)及會話(session)bean對象的引用,而EJB 3.0客戶端應用則是使用@Resource、@Inject和@EJB。

  在EJB 2.1中,可使用javax.ejb包裝類與接口來開發實體與會話,在此,一個會話bean實現了SessionBean接口,而一個實體bean實現了EntityBean接口;相比之下,EJB 3.0的會話與實體bean類是POJO,并沒有實現SessionBean和EntityBean接口。

  一個EJB 2.1的會話bean類指定了一個或多個ejbCreate方法、回調方法、setSessionContext方法和業務(business)方法;與此類似,一個EJB 2.1實體指定了ejbCreate()、ejbPostCreate()、回調、容量治理持久性(CMP)、CMR的getter/setter和業務方法。一個EJB 3.0會話bean類只指定了業務方法;同樣地,一個EJB 3.0實體bean只指定了業務方法、對不同bean屬性的getter/setter方法及對bean關系的getter/setter方法。

  EJB 2.1主接口擴展了javax.ejb.EJBHome接口、另有一個本地主接口擴展了javax.ejb.EJBLocalHome接口;EJB 2.1的遠程接口擴展了javax.ejb.EJBObject接口,另有一個本地接口擴展了javax.ejb.EJBLocalObject接口。在EJB 3.0中,并沒有指定組件與主接口--它們已被POJI取代,假如一個會話bean類沒有指定一個業務接口,那么EJB服務器將從會話bean類中為它生成一個POJI業務接口。

  請在腦海中記住這些變化,本文的后續部分,將用兩個示例來集中講述把一個會話bean和一個實體bean,從EJB 2.1遷移到EJB 3.0時所需的具體信息。

  遷移會話bean

  示例中的EJB 2.1會話bean類--BookCatalogBean--指定了一個ejbCreate方法、一個稱為getTitle()的業務方法和一個回調方法:

// BookCatalogBean.java
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

public class BookCatalogBean implements SessionBean
{
 PRivate SessionContext ctx;
 public String getEdition(String title)
 {
  if(title.equals("Java & XML"))
   return new String("第二個版本");
  if(title.equals("Java and XSLT"))
   return new String("第一個版本");
 }
 public void ejbCreate(){}
 public void ejbRemove() {}
 public void ejbActivate() {}
 public void ejbPassivate() {}
 public void setSessionContext(SessionContext ctx)
 {this.ctx=ctx;}
}
  在EJB 3.0會話bean中,可使用元數據注釋來指定bean類型,即使用@Stateful和@Stateless來分別指定Stateful(有狀態)或Stateless(無狀態)。也可在一個會話bean中用一個業務接口來取代組件與主接口,因為業務接口是一個POJI,所以可用@Local和@Remote來指定其為本地或遠程類型,而一個會話bean可同時實現本地與遠程接口。

  假如在bean類不指定接口類型(本地或遠程),那EJB服務器在默認情況下會自動生成一個本地業務接口,在此也可使用@Local和@Remote注釋來指定接口類。

  下面的EJB 3.0會話bean是一個POJO,其由前面的BookCatalogBean.java EJB 2.1無狀態會話bean移植而來,注重它使用了@Stateless注釋,實現了一個本地業務接口,并在@Local注釋中指定了本地接口類名。

// BookCatalogBean.java EJB 3.0 Session Bean
@Stateless
@Local ({BookCatalogLocal.java})
public class BookCatalogBean implements
BookCatalogLocal
{
 public String getEdition(String title)
 {
  if(title.equals("Java & XML"))
   return new String("第二個版本");
  if(title.equals("Java and XSLT"))
   return new String("第一個版本");
 }
}
  另外,也要注重,通過@Local注釋,上面的EJB 3.0bean類用一個本地業務接口(POJI)取代了EJB 2.1中的組件與主接口。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
5252色成人免费视频| 久久人人爽人人爽人人片av高清| 亚洲欧美中文字幕在线一区| 国产亚洲欧美日韩精品| 欧美午夜无遮挡| 欧美国产日产韩国视频| 国产99久久精品一区二区 夜夜躁日日躁| 日韩成人中文字幕| 综合网中文字幕| 亚洲美女精品久久| 国内精品久久久久影院 日本资源| 91po在线观看91精品国产性色| 欧美xxxwww| 精品亚洲夜色av98在线观看| 亚洲国产精品福利| 久久久久久91香蕉国产| 日韩av一区在线观看| 超碰精品一区二区三区乱码| 日韩a**站在线观看| 久久久欧美一区二区| 伊人久久精品视频| 亚洲电影成人av99爱色| 97国产真实伦对白精彩视频8| 亚洲老板91色精品久久| 精品中文字幕在线观看| 亚洲tv在线观看| 青青草原一区二区| 日韩欧美成人免费视频| 亚洲人午夜精品| 日韩va亚洲va欧洲va国产| 亚洲精品福利在线| 久久天天躁狠狠躁老女人| 日韩电影免费观看中文字幕| 91在线视频精品| 8090成年在线看片午夜| 中文字幕欧美日韩精品| 亚洲第一精品电影| 国产精品自拍偷拍视频| 欧美老少配视频| 国产美女精品视频| 国产精品久久久91| 欧美国产日本在线| 日本不卡免费高清视频| 色综合91久久精品中文字幕| 国产高清视频一区三区| 国产亚洲一区二区精品| 欧美—级高清免费播放| 精品国产区一区二区三区在线观看| 久久中国妇女中文字幕| 国内揄拍国内精品少妇国语| 欧美亚洲视频一区二区| 国产日韩视频在线观看| 91久久精品国产91性色| 欧美精品制服第一页| 国产精品女人久久久久久| 亚洲第一精品自拍| 国产精品丝袜白浆摸在线| 91av视频在线| 日韩视频免费大全中文字幕| 成人国产精品av| 亚洲天堂男人天堂女人天堂| 久久99久久亚洲国产| 91精品久久久久久久久久久久久| 欧美另类在线播放| 欧美性jizz18性欧美| 亚州精品天堂中文字幕| 亚洲国产高清高潮精品美女| 久久国产精品99国产精| 亚洲永久在线观看| 中文字幕日韩精品在线| 国产97色在线|日韩| 宅男66日本亚洲欧美视频| 最近更新的2019中文字幕| 中文字幕精品视频| 久久91超碰青草是什么| 久久久久久久久久av| 亚洲综合在线中文字幕| 日韩在线观看成人| 91亚洲精品一区二区| 久久影视免费观看| 91亚洲国产成人精品性色| 日韩精品日韩在线观看| 亚洲xxxxx| 亚洲iv一区二区三区| 欧美丰满片xxx777| 国产精品h在线观看| 欧美日韩在线免费| 日韩一区二区三区国产| 97激碰免费视频| 91久久国产精品91久久性色| 国产精品视频精品视频| 91在线免费网站| 日韩一区在线视频| 91高清免费在线观看| 操日韩av在线电影| 精品国产欧美一区二区五十路| 中文字幕亚洲无线码a| 欧美亚洲国产视频| 日韩精品中文字| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲天堂av在线播放| 欧美一级视频一区二区| 性色av一区二区三区免费| 亚洲精品www| 欧美在线精品免播放器视频| 欧美成人四级hd版| 欧美影院在线播放| 日韩免费在线看| 日韩成人xxxx| 亚洲欧美国产精品| 欧美成人午夜免费视在线看片| 国产精品最新在线观看| 欧美丰满少妇xxxx| 国产在线播放不卡| 日韩国产欧美精品一区二区三区| 欧美激情videoshd| 欧美激情亚洲激情| 国产不卡av在线免费观看| 久久精品国产电影| 久久av在线播放| 奇米四色中文综合久久| 欧美日本啪啪无遮挡网站| 欧美电影免费观看电视剧大全| 成人免费视频97| 原创国产精品91| 日韩精品丝袜在线| 国产精品久久久91| 精品久久久久久久久久ntr影视| 欧美亚洲国产视频| 亚洲激情久久久| 亚洲第一视频网站| 国产精品自拍网| 日av在线播放中文不卡| 日韩在线观看网址| 国产精品中文字幕久久久| 成人综合国产精品| 亚洲国产婷婷香蕉久久久久久| 欧美体内谢she精2性欧美| 久久精品男人天堂| 亚洲精品动漫100p| 久久久999精品| 懂色av一区二区三区| 国产精品精品一区二区三区午夜版| 国产欧美日韩中文字幕| 一区二区亚洲欧洲国产日韩| 亚洲最大的免费| 久久久精品国产| 久久精品中文字幕| 欧美性猛交xxxx偷拍洗澡| 日韩在线视频观看正片免费网站| 狠狠爱在线视频一区| 成人性教育视频在线观看| 日韩精品中文字幕在线观看| 2019中文字幕在线免费观看| 亚洲四色影视在线观看| 成人激情av在线| 久久人人爽人人爽人人片av高请| 亚洲国产日韩欧美在线99| 成人黄色免费片| 久久全国免费视频| 成人xxxxx| 欧美一级淫片丝袜脚交| 欧美激情第三页| 亚洲xxx大片|