自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java EE 6新特性嘗鮮:EJB 3.1重要變化總覽

譯文
開(kāi)發(fā) 后端
Java EE 6自2007年提出草案以來(lái),一直都在緩慢的進(jìn)展中。這個(gè)版本和之前版本有諸多不同,對(duì)擴(kuò)展性和簡(jiǎn)易性進(jìn)行了很大的提升。本文講解Java EE 6中的重要新特性之EJB 3.1(Enterprise JavaBeans)的重要變化。

【51CTO精選譯文】EJB 3.1規(guī)范的主要目標(biāo)是使EJB盡可能簡(jiǎn)單,其核心思想是簡(jiǎn)化EJB架構(gòu)同時(shí)引入新的功能,EJB 3.1中一些重要的變化包括:

51CTO編輯推薦:Java EE 6遙遙無(wú)期 預(yù)覽版兩極分化

移除了本地事務(wù)接口:EJB 3.0移除了復(fù)雜的本地和遠(yuǎn)程接口,為簡(jiǎn)單舊式Java接口(plain old Java interface,POJI)開(kāi)路,EJB 3.1更進(jìn)了一步,事務(wù)接口也不用再?gòu)?qiáng)制遵循了,類似于POJO,如JPA中的實(shí)體和消息驅(qū)動(dòng)Beans,在Java EE 6中,開(kāi)發(fā)者可以不用事務(wù)接口編寫(xiě)會(huì)話Beans了:

  1. @Stateless 
  2. public class StockQuoteBean {  
  3.    public double getStockPrice(String symbol) {  
  4.       ...  
  5.    }  

引入了Singleton Beans:引入Singleton beans概念主要是為了共享應(yīng)用數(shù)據(jù)和支持一致性訪問(wèn),當(dāng)一個(gè)Bean被標(biāo)記為Singleton時(shí),在整個(gè)應(yīng)用層容器只能保證每個(gè)JVM共享一個(gè)實(shí)例,對(duì)于緩存這一規(guī)定是行之有效的,Singleton beans和其它EJB一樣,它們是開(kāi)發(fā)人員可以通過(guò)注解將它們標(biāo)記為Singleton beans的POJO。

默認(rèn)情況下,所有Singleton beans都是事務(wù)性和線程安全的,具有靈活的并發(fā)性選項(xiàng),Java EE 6也引入了并發(fā)性注解在getter和setter函數(shù)上執(zhí)行鎖定的讀/寫(xiě)操作。

  1. @Singleton 
  2. @Startup 
  3. public class CounterBean {  
  4.    private int count;  
  5.    @PostConstruct 
  6.    public void initialize() {  
  7.       count=5;  
  8.    }  
  9. }  

直接用WAR文件打包EJB組件:EJB 3.1中一個(gè)重要的改進(jìn)是可以直接將EJB組建打包到WAR文件中,不用再獨(dú)立創(chuàng)建jar文件了,EJB 3.1為Web應(yīng)用程序提供了一個(gè)簡(jiǎn)化的打包機(jī)制,圖1顯示了EJB 3.1以前的打包方式。

EJB 3.1之前的打包方式(EJB 3.0打包結(jié)構(gòu)) 
圖 1 EJB 3.1之前的打包方式(EJB 3.0打包結(jié)構(gòu))

使用EJB 3.1后,開(kāi)發(fā)人員可以直接將classes目錄下的EJB和servlets一起打包到WAR文件中,圖2顯示了EJB 3.1的打包方式。

EJB 3.1打包方式結(jié)構(gòu)圖 
圖 2 EJB 3.1打包方式結(jié)構(gòu)圖

在Java SE環(huán)境中嵌入API執(zhí)行EJB:這個(gè)特性背后的思想是允許EJB在Java SE環(huán)境中運(yùn)行,即客戶端和EJB在相同的JVM中運(yùn)行,為了運(yùn)行EJB,Java EE 6提供了一個(gè)嵌入式EJB容器,使用JNDI進(jìn)行檢查,這為測(cè)試,批處理過(guò)程和在桌面應(yīng)用程序中使用EJB提供了便利,嵌入式EJB容器提供了一個(gè)管理EJB的環(huán)境,這個(gè)環(huán)境支持有限的服務(wù),javax.ejb.EJBContainer類表示一個(gè)嵌入式容器。

異步會(huì)話Beans:一個(gè)支持異步函數(shù)調(diào)用的會(huì)話Bean,使用@Asynchronous注解的Bean函數(shù)是異步調(diào)用的,在EJB 3.1之前,在會(huì)話Bean上的任何函數(shù)調(diào)用都是同步的。異步函數(shù)可以返回一個(gè)java.util.concurrent API的Future對(duì)象,當(dāng)客戶端想獲取調(diào)用的狀態(tài)時(shí)這個(gè)非常有用,通過(guò)檢索函數(shù)返回的值,檢查一個(gè)異常,或者取消調(diào)用。

EJB Lite:許多企業(yè)級(jí)應(yīng)用不需要EJB完整的功能,因此在EJB 3.1中引入了EJB Lite,它是EJB API的一個(gè)子集,EJB Lite包括了創(chuàng)建一個(gè)企業(yè)級(jí)應(yīng)用的所有功能,但不包括專業(yè)的API。EJB Lite提供了廠家選項(xiàng),讓廠家可以在它們自己的產(chǎn)品中實(shí)施EJB API的子集,使用EJB Lite創(chuàng)建應(yīng)用程序可以部署到任何支持EJB的服務(wù)器上,不管它是完整的EJB還是EJB Lite,嵌入式容器也支持EJB Lite,EJB Lite有以下EJB API子集:

◆會(huì)話Bean組件(Stateless,stateful和singleton會(huì)話Bean)

◆只支持同步調(diào)用

◆容器管理和Bean管理事務(wù)

◆聲明和編程安全

◆截取器

◆支持部署描述信息(ejb-jar.xml)

圖3中顯示的EJB Lite支持的功能在完整的EJB中也全部支持。

EJB 3.1 Lite和EJB 3.1完整版支持的功能對(duì)比 
圖 3 EJB 3.1 Lite和EJB 3.1完整版支持的功能對(duì)比

原文:New Features in Java EE 6

作者:Sangeetha S.

【編輯推薦】

  1. 為什么我喜歡EJB 3.0并且尤其喜歡EJB 3.1
  2. Java開(kāi)發(fā)三劍客JSF2.0、EJB3.1、JPA2.0現(xiàn)狀及發(fā)展
  3. EJB3.1新特性一覽 Time服務(wù)更強(qiáng)大
  4. EJB初學(xué)者常見(jiàn)的12個(gè)困惑問(wèn)與答
  5. Java語(yǔ)言中關(guān)于EJB技術(shù)的概論
責(zé)任編輯:yangsai 來(lái)源: 51CTO.com
相關(guān)推薦

2010-01-20 09:33:59

2018-03-05 17:29:52

SparkApache SparSpark 2.3

2009-06-04 17:24:29

EJB3.1新特性Time服務(wù)

2013-05-02 09:14:19

Java 8Java 8的新特性

2010-01-14 09:15:07

Java EE 6Servlet 3.0異步處理

2009-12-15 09:13:07

Java EE 6

2012-10-17 09:20:17

Windows 8

2009-12-11 11:33:09

NetBeans 6.

2010-07-01 15:31:08

Java EE 6EJBWebService

2009-06-16 11:23:00

InstrumentaJava SE 6新特

2011-04-02 14:33:51

Bean ValidaJava EE 6Java

2010-01-05 09:15:45

Java EE 6Bean驗(yàn)證

2009-06-16 11:24:00

HTTP增強(qiáng)Java SE 6新特

2010-01-22 09:52:32

JPA 2.0Java EE 6

2018-05-18 15:05:25

JavaJava 10新特性

2009-06-04 17:33:08

EJB 3.1EJB 3.0

2011-11-06 21:19:38

Eclipse

2011-12-16 09:24:53

JavaSpring開(kāi)源框架

2010-04-22 09:17:35

Red Hat

2012-08-10 10:15:50

HTML5
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)