日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
EJB3.1五大模式改進令JavaEE6更好用

【精選譯文】EJB(Enterprise JavaBeans)是使用Java EE開發(fā)和部署業(yè)務應用系統(tǒng)的服務端組件架構,使用EJB編寫的應用系統(tǒng)是可擴展的、事務型和安全的。EJB 3.0是Java EE 5平臺的一部分,相對前面的版本,它更加易于使用,它的***版本 — JSR318:EJB 3.1 — 隨Java EE 6發(fā)布,進一步簡化了使用,并提供了許多反應常見使用模式的改進,如:

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供仙游網(wǎng)站建設、仙游做網(wǎng)站、仙游網(wǎng)站設計、仙游網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、仙游企業(yè)網(wǎng)站模板建站服務,10年仙游做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

1、無接口視圖:允許你指定一個企業(yè)Bean,只使用Bean類,不用編寫獨立的業(yè)務接口。

2、單元素集合:讓你在一個企業(yè)Bean組件的多個實例間輕松地共享狀態(tài),或是在一個應用程序的多個企業(yè)Bean組件之間共享狀態(tài)。

3、異步會話Bean調(diào)用:通過指定一個注解,讓你可以異步調(diào)用會話狀態(tài)方法。

4、簡化打包:消除了企業(yè)Bean類必須打包到ejb-jar文件的限制,現(xiàn)在你可以直接將EJB類放到WAR文件中。

5、輕量級EJB:它是EJB 3.1的子集,包括大量的Java EE profiles。

無接口視圖

#t#EJB 3.0本地客戶端視圖是基于普通舊式Java接口(POJI)調(diào)用本地業(yè)務接口的,本地接口定義了暴露給客戶端的業(yè)務方法,并是在Bean類上實現(xiàn)的,這種獨立的接口有時會帶來不必要的麻煩,并且價值也不大,相同模塊內(nèi)的來自客戶端的本地訪問細粒度組件尤其如此。

EJB 3.1通過讓本地業(yè)務接口成為可選組件簡化了這個方法,沒有本地業(yè)務接口的Bean暴露的是無接口視圖,現(xiàn)在你不用編寫獨立的業(yè)務接口就可以獲得相同的企業(yè)Bean功能。

無接口視圖與EJB 3.0中的本地視圖具有相同的行為,例如,它支持如通過按引用調(diào)用語義、事務和安全傳播等特性,但無接口視圖不需要單獨的接口,即Bean類所有的公共方法自動暴露給調(diào)用者。默認情況下,任何有空implements子句,且沒有定義任何其它本地或遠程客戶端視圖的會話Bean,暴露的是一個無接口視圖。下面的會話Bean暴露了一個無接口視圖:

 
 
 
 
  1. @Stateless 
  2.    public class HelloBean {  
  3.  
  4.        public String sayHello() {  
  5.            String message = propertiesBean.getProperty("hello.message");  
  6.            return message;  
  7.        }  
  8.  
  9.    }  
  10.  

使用本地視圖時,無接口視圖的客戶端總是獲得一個EJB引用 — 通過注入或JNDI查找,唯一的不同之處是EJB引用的Java類型是Bean類類型,而不是本地接口的類型,如下面的Bean客戶端:

 
 
 
 
  1. @EJB 
  2.  private HelloBean helloBean;  
  3.  
  4.  ...  
  5.  
  6.  String msg = helloBean.sayHello();  

注意,雖然這里沒有接口,客戶端不能使用new()明確地實例化Bean類,那是因為所有Bean調(diào)用都是通過一個特殊的EJB引用,或由容器提供的代理實現(xiàn)的,這樣就允許容器提供其它的Bean服務,如池、容器管理的事務,并發(fā)管理等。

#p#

單元素集合

單元素集合Bean也被稱為單元素集合,它是一種新的會話Bean,它保證在一個特定的Java虛擬機(JVM)應用程序中只被實例化一次。使用單元素集合,你可以在一個企業(yè)Bean組件的多個實例之間輕松地共享狀態(tài),也可以在一個應用程序的多個企業(yè)Bean之間共享狀態(tài),它就象為某個應用程序緩存數(shù)據(jù)的類一樣。你可以以單元素集合形式定義類,這樣可以確保在應用程序內(nèi)只有一個緩存實例,一個共享狀態(tài)。

使用@Singleton注解定義單元素集合,如:

 
 
 
 
  1. @Singleton 
  2.    public class PropertiesBean {  
  3.  
  4.     private Properties props;  
  5.  
  6.     public String getProperty(String name) { ... }  
  7.  
  8.    @PostConstruct 
  9.           public void initialize { // props = ...}  
  10.  
  11.    }  
  12.  

因為它只是另一種會話Bean,單元素集合可以定義相同的本地和遠程客戶端視圖,可以象無狀態(tài)的和有狀態(tài)的Bean那樣,客戶端以訪問無狀態(tài)和有狀態(tài)Bean相同的方式訪問單元素集合,即通過EJB引用。例如,下面是一個可以訪問PropertiesBean單元素集合的客戶端示例:

 
 
 
 
  1. @EJB 
  2.    private PropertiesBean propsBean;  
  3.  
  4.    ...  
  5.  
  6.    String msg = propsBean.getProperty("hello.message");  
  7.  

在這里,容器確保所有通過PropertiesBean引用的調(diào)用是由相同的PropertiesBean實例提供的服務,默認情況下,容器強制執(zhí)行和其它組件類型相同的線程保證,換句話說,單元素集合是全線程安全的,特別值得一提的是,在任一時刻,允許多個調(diào)用訪問一個特定的Bean實例,默認情況下,單元素集合會阻塞所有并發(fā)調(diào)用,但還有其它并發(fā)選項允許更高效地訪問單元素集合實例。

#p#

異步會話Bean調(diào)用

#t#EJB 3.1引入了一個強大功能,那就是可以異步調(diào)用會話Bean方法。對于一個異步調(diào)用,允許會話Bean執(zhí)行它的操作時,客戶端并行處理其它事情。

通過@Asynchronous注解讓一個方法支持異步,也可以使用一個部署描述符將一個方法指定為異步的。

異步方法可以返回一個java.util.concurrent.Future或void對象,F(xiàn)uture對象容納了異步操作返回的結果,你可以訪問Future對象檢索一個結果值,檢查異?;蛉∠粋€正在處理中的調(diào)用。Future接口提供一個get()方法檢索值,當然,你也可以其它合適的類檢索值,如AsyncResult,實際上它自己實現(xiàn)了一個Future接口。

在下面的例子中,performCalculation()方法是異步的,它使用AsyncResult類檢索Future對象返回的值。

 
 
 
 
  1. @Stateless 
  2.    Public class CalculatorBean implements CalculatorService {  
  3.       ...  
  4.  
  5.       @Asynchronous 
  6.       public Future performCalculation(...) {  
  7.  
  8.          // ... do calculation  
  9.  
  10.          Integer result = ...;  
  11.          return new AsyncResult(result);  
  12.       }  
  13.    }  
  14.  

#p#

簡化打包

EJB規(guī)范始終要求企業(yè)Bean打包到一個叫做ejb-jar文件的企業(yè)模塊中,因為它一般用于Java EE Web應用程序,這種打包方法顯得有些累贅,應用程序被強制使用一個Web應用程序使用的歸檔文件(.war),一個企業(yè)Bean使用的ejb-jar文件,還有一個包含其它包的企業(yè)歸檔文件(.ear),如圖1所示,這種打包方法非常復雜,它需要指定模塊之間共享的類和資源。

 
圖 1 傳統(tǒng)的企業(yè)應用程序打包方法

EJB 3.1解決了這個問題,簡化了打包的復雜程度,徹底消除了企業(yè)Bean類必須打包進ejb-jar文件的限制,如圖2所示,現(xiàn)在你可以直接將EJB類放到.war文件中,使用打包Web應用程序類相同的打包規(guī)則,這意味著你可以將EJB類放到WEB-INF/classes目錄下,或者放到WEB-INF/lib目錄下的一個.jar文件中。EJB部署描述符也是可選的,如果你需要它,你可以將EJB部署描述符打包到WEB-INF/ejb-jar.xml文件中。

 
圖 2 簡化的企業(yè)應用程序打包方法

#p#

輕量級EJB(EJB Lite)

對許多應用程序而言,EJB提供了比應用程序真正需要的多得多的功能,使用EJB的應用程序通常只需要使用EJB 3.1的一個子集,輕量級EJB就是為滿足這種需要誕生的。

輕量級EJB簡化了許多開發(fā)人員使用EJB,使用輕量級EJB的開發(fā)人員在他們的應用程序中需要學習使用一部分功能即可。此外,使用輕量級EJB開發(fā)的應用程序可以運行在輕量級EJB或全功能EJB 3.1 API實現(xiàn)的應用程序服務器上。

注意,輕量級EJB不是一個產(chǎn)品,它是EJB 3.1 API的一個子集,輕量級EJB的目標是提供EJB 3.1的一個子集,滿足大多數(shù)應用程序業(yè)務邏輯層的需要,它也為供應商提供了更好的靈活性,為了滿足這些模板,輕量級EJB提供了以下功能:

1、有狀態(tài),無狀態(tài)和單元素集合會話Bean;

2、本地EJB接口或無接口;

3、攔截器;

4、容器管理的和Bean管理的事務;

5、聲明和編程安全;

6、嵌入式API。

更多EJB 3.1新特性

#t#EJB 3.1除前面談到的這些新特性外,還帶來了更多的新特性和改進,例如,它包括一個用于Java SE環(huán)境的嵌入式API和容器,這些特性使在Java EE容器外(通常指Java SE環(huán)境)測試EJB組件更容易,另外,EJB 3.1引入的單元素集合為EJB應用程序提供了一個方便的方法,在應用程序初始化或關閉期間接受反饋,默認情況下,由容器決定何時實例化單元素集合實例,但你可以通過@Startup注解,強制容器在應用程序初始化期間實例化單元素集合實例,允許Bean定義一個@PostConstruct方法保證在應用程序啟動時調(diào)用,此外,@PreDestroy方法可以保證應用程序關閉時調(diào)用。

【譯稿,非經(jīng)授權請勿轉載。合作站點轉載請注明原文譯者和出處為,且不得修改原文內(nèi)容?!?/p>

原文:EJB Technology, Even Easier to Use  作者:Ed Ort


當前名稱:EJB3.1五大模式改進令JavaEE6更好用
標題來源:http://m.5511xx.com/article/dhgjdpe.html