EJB3.1增加了Singleton Beans的概念
EJB在Java EE就已經(jīng)經(jīng)歷過了非常大的改動(dòng)。也許看似不可能,但實(shí)際上 EJB3.1還是在社區(qū)中廣泛得到認(rèn)可,并且采納它的人也在不斷增長(zhǎng)。而這一切也許是因?yàn)槲覀冞^度的認(rèn)為需要怎么怎么簡(jiǎn)化 Java EE才取得這樣的成績(jī)。比如說(shuō),對(duì) JBoss Seam 的興趣和 GlassFish 的熱情都是重要的關(guān)鍵因素。 EJB3.1 的目標(biāo)就是在增加業(yè)務(wù)組件時(shí),繼續(xù)讓 EJB 變得盡可能簡(jiǎn)單。下面是對(duì) EJB3.1 特性的高度概括:
原本需要甚至實(shí)現(xiàn) Session Beans 的業(yè)務(wù)接口變得可選了,不再?gòu)?qiáng)迫要求實(shí)現(xiàn)。在使用 Session Beans+JSF+WebBeans 的場(chǎng)景下尤其有用。
EJB3.1 增加了 Singleton Beans 的概念。因?yàn)槿藗兏鼉A向于管理共享的應(yīng)用程序狀態(tài),需要保證是完全線程安全的模型。此外, EJB3.1 新增的聲明式的并發(fā)控制也更加靈活。
EJB3.1 一個(gè)可圈可點(diǎn)的的強(qiáng)大特性就是支持 cron 風(fēng)格的 scheduling .除目前基于 timer API 的調(diào)度計(jì)時(shí)器外,聲明式和編程式的 cron 風(fēng)格的 scheduling API 也加入了進(jìn)來(lái)。
另一個(gè)強(qiáng)大的特性就是可以通過使用 @Asynchronous 標(biāo)注來(lái)對(duì) Session Bean 的方法進(jìn)行異步調(diào)用。你甚至還通過它來(lái)控制異步 EJB 方法從而返回一個(gè) java.util.concurrent.Future 對(duì)象。
EJB3.1 Lite 概念的逐漸引入形成了一個(gè) EJB API 的子集,并在 Web Profile 中得到應(yīng)用。只不過 EJB Lite 包含了像事務(wù)處理和安全這樣的特性,而那些消息機(jī)制,遠(yuǎn)程調(diào)用以及 scheduling 等非必須的自然沒有必要加入其中。除上述列表所述特性外,
EJB3.1 的特性還包括:直接將 EJB 打包成 war 文件,可運(yùn)行在 embedded 的容器中便于 Java SE 環(huán)境進(jìn)行 JUnit 測(cè)試,使用統(tǒng)一的標(biāo)準(zhǔn)化全局 JNDI 命名方式.
【編輯推薦】















 
 
 








 
 
 
 