成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

EJB注釋是通過@來實現的

開發 后端
本文向您介紹EJB注釋的實現,包括有狀態@Stateful和無狀態@Stateless會話、JNDI的命名規則、.Bean 的生命周期 等。

1.有狀態@Stateful和無狀態@Stateless會話

EJB注釋是EJB技術的一個特點。@Stateless 定義本會話為無狀態會話。無狀態會話Bean 是一個簡單的POJO(純粹的面向對象思想的java 對象),EJB3.0 容器自動地實例化及管理這個Bean。Stateless Session Bean不負責記錄使用者狀態,Stateless Session Bean一旦實例化就被加進會話池中,各個用戶都可以共用。即使用戶已經消亡,Stateless Session Bean的生命期也不一定結束,它可能依然存在于會話池中,供其他用戶調用。
@Stateful定義本會話為有狀態會話。有狀態Bean是一個可以維持自身狀態的會話Bean。每個用戶都有自己的一個實例,在用戶的生存期內,Stateful Session Bean 保持了用戶的信息,即“有狀態”;一旦用戶滅亡(調用結束或實例結束),Stateful Session Bean的生命期也告結束。
一個bean可以同時是有狀態的和無狀態的

2.Local接口@Local和Remote接口@Remote

當@Local和@Remote的EJB注釋都不存在時,會話 Bean實現的接口默認為Local接口。如果在本機調
用EJB(確保客戶端與EJB容器運行在同一個JVM),采用Local接口訪問EJB優于Remote接口,因為Remote
接口訪問EJB需要經過遠程方法調用(RPCs)環節,而Local接口訪問EJB直接從JVM 中返回EJB的引用。

3.JNDI的命名規則

JNDI 名的組成規則是“上層名稱/下層名稱“,每層之間以”/”分隔。默認的JNDI名稱是 會話Bean +接口類型

4.改變Session Bean 的JNDI 名稱

要自定義JNDI名稱,可以使用@LocalBinding 和 @RemoteBinding 注釋,@LocalBinding注釋指定Session Bean的Local接口的JNDI名稱,@RemoteBinding注釋指定Session Bean的Remote接口的JNDI名稱。例如:


@RemoteBinding (jndiBinding="com/RemoteHello")
@LocalBinding (jndiBinding="com/LocalHello")第一句定義JNDI 為com/RemoteHello,第二句定義JNDI 為com/LocalHello

5.Bean 的生命周期

@PostConstruct:當bean對象完成實例化后,使用了這個注釋的方法會被立即調用。這個注釋同時適用于有狀態和無狀態的會話bean。
@PreDestroy:使用這個注釋的方法會在容器從它的對象池中銷毀一個無用的或者過期的bean 實例之前調用。這個注釋同時適用于有狀態和無狀態的會話bean。
@PreDestroy:當一個有狀態的session bean實例空閑過長的時間,容器將會鈍化(passivate)它,并把它的
狀態保存在緩存當中。使用這個注釋的方法會在容器鈍化bean實例之前調用。這個注釋適用于有狀態的會話bean。
當鈍化后,又經過一段時間該bean 仍然沒有被操作,容器將會把它從存儲介質中刪除。以后,任何針對該bean
方法的調用容器都會拋出例外。
@PreDestroy:當客戶端再次使用已經被鈍化的有狀態session bean時,新的實例被創建,狀態被恢復。使用此注釋的session bean會在bean的激活完成時調用。這個注釋只適用于有狀態的會話bean。
@Init:這個注釋指定了有狀態session bean初始化的方法。它區別于@PostConstruct注釋在于:多個@Init注釋方法可以同時存在于有狀態session bean 中,但每個bean實例只會有一個@Init注釋的方法會被調用。這取
決于bean是如何創建的(細節請看EJB 3.0規范)。@PostConstruct在@Init之后被調用。另一個有用的生命周期方法注釋是@Remove,特別是對于有狀態session bean。當應用通過存根對象調用使用了
@Remove注釋的方法時,容器就知道在該方法執行完畢后,要把bean實例從對象池中移走。

6.攔截器(Interceptor)

攔截器可以監聽程序的一個或所有方法。攔截器對方法調用流提供了細粒度控制。
@Interceptors 注釋指定一個或多個在外部類中定義的攔截器。
@AroundInvoke 注釋指定了要用作攔截器的方法。用@AroundInvoke注釋指定的方法必須遵守以下格式:
public Object XXX(InvocationContext ctx) throws Exception。XXX 代表方法名可以任意。(以下同)
除了可以在外部定義攔截器之外,還可以將Session Bean 中的一個或多個方法定義為攔截器。

7.依賴注入

為了存取那些服務對象,你需要通過服務器的JNDI 來查找存根對象(session bean)或消息隊列(MDB)。JNDI查找是把客戶端與實際的服務端實現解藕的關鍵步驟。但是,直接使用一個字符串來進行JNDI查找并不優雅。
@EJB注釋EJB存根對象注入到任何EJB 3.0容器管理的POJO 中。


@EJB (beanName="HelloWorldBean")
//@EJB (mappedName="HelloWorldBean/remote")beanName的beanName屬性指定EJB的類名,mappedName指定Bean實例的JNDI名。
@EJB注釋如果被用在JavaBean風格的setter 方法上時,容器會在屬性第一次使用之前,自動地用正確的參數調用bean的setter 方法。
@EJB注釋只能注入EJB存根對象,除@EJB注釋之外,EJB 3.0也支持@Resource注釋來注入來自JNDI的任何
資源。
如果JNDI對象在本地(java:comp/env)JNDI目錄中,你只需給定他的映謝名稱即可,不需要帶前綴。
@Resource注釋可以不指定JNDI名就能注入他們,他通過變量的類型就能獲得他的JNDI名。@Resource注釋可以被用在JavaBean風格的setter 方法上。

8. 定時服務

定時服務用作在一段特定的時間后執行某段程序,使用@Timeout 注釋聲明定時器方法。
通過依賴注入@Resource SessionContext ctx,獲得SessionContext對象,調用ctx.getTimerService().createTimer(Date arg0, long arg1, Serializable arg2)方法創建定時器,三個參數的含義如下:
Date arg0 定時器啟動時間,如果傳入時間小于現在時間,定時器會立刻啟動。
long arg1 間隔多長時間后再次觸發定時事件。單位:毫秒
當定時器創建完成后,還需聲明定時器方法。EJB注釋是EJB技術的一個特點。

 

【編輯推薦】

  1. 什么是EJB,EJB技術概覽
  2. MyEclipse+Weblogic開發EJB組件
  3. 精通EJB組件和EJB容器
  4. 在Eclipse+JBoss+EJB3使用Session Bean的本地接口
  5. EJB2.0教程 詳解EJB技術及實現原理
責任編輯:佚名 來源: DIY部落
相關推薦

2009-06-11 16:53:09

什么是EJBEJB

2009-06-26 14:54:18

Spring支持EJB

2009-06-10 11:42:26

Session BeaEclipse+JBo

2009-06-11 16:01:17

EJB容器

2009-06-11 16:25:44

EJB2.0EJB

2010-04-14 09:41:10

Oracle數據備份

2009-06-17 09:01:20

JBoss訪問EJB

2021-09-22 05:55:18

Eslint disble算法

2009-06-11 15:26:05

EJB組件EJB容器

2021-05-10 10:50:53

NginxIPLinux

2014-11-26 14:46:47

代碼

2009-06-25 16:35:12

EJB技術

2020-07-29 10:22:33

IT新冠病毒CIO

2023-10-24 15:03:28

數字化轉型

2009-12-28 09:23:50

接入網技術

2009-06-12 12:46:59

EJB3.0

2011-05-25 10:32:19

SQLite

2023-03-10 08:37:33

預熱優化PostgreSQL

2009-06-26 15:58:28

EJB

2009-06-12 11:46:39

JavaBeanEJB
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久免费软件 | 欧美不卡一区 | 暖暖成人免费视频 | caoporn免费在线视频 | 中文字幕av网站 | 视频在线观看一区 | 黄色一级免费观看 | 一区二区三区高清 | 国产精品久久久久久久久久久久久 | 日韩在线中文字幕 | 日韩精品一区二区三区老鸭窝 | 黄色大片视频 | 成人久草| 在线视频国产一区 | 一区二区三区视频在线观看 | 亚洲中午字幕 | 国产精品无码久久久久 | 国产精品国产三级国产aⅴ中文 | 亚洲黄色一级 | 成人在线中文字幕 | 亚洲免费网 | 天天爱爱网| 国产黄视频在线播放 | 亚洲乱码一区二区三区在线观看 | 欧美日韩久久精品 | 国产亚洲欧美另类一区二区三区 | 色综合久久天天综合网 | 国产乱码精品1区2区3区 | 天天躁人人躁人人躁狂躁 | 成年人网站在线观看视频 | 爱爱视频在线观看 | 青青久草| 在线婷婷| 国产日韩精品一区 | 欧美jizzhd精品欧美巨大免费 | 中文字幕在线观看精品 | 在线播放国产一区二区三区 | 日韩不卡在线 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 久久久久久国产 | 男人的天堂在线视频 |