|
|
51CTO旗下网站
|
|
移动端

Java EE 6新特性尝鲜:EJB 3.1重要变化总览

Java EE 6自2007年提出草案以来,一直都在缓慢的进展中。这个版本和之前版本有诸多不同,对扩展性和简易性进行了很大的提升。本文讲解Java EE 6中的重要新特性之EJB 3.1(Enterprise JavaBeans)的重要变化。

作者:黄永兵 译来源:51CTO.com|2009-07-23 09:42

【51CTO精选译文】EJB 3.1规范的主要目标是使EJB尽可能简单,其核心思想是简化EJB架构同时引入新的功能,EJB 3.1中一些重要的变化包括:

51CTO编辑推荐:Java EE 6遥遥无期 预览版两极分化

移除了本地事务接口:EJB 3.0移除了复杂的本地和远程接口,为简单旧式Java接口(plain old Java interface,POJI)开路,EJB 3.1更进了一步,事务接口也不用再强制遵循了,类似于POJO,如JPA中的实体和消息驱动Beans,在Java EE 6中,开发者可以不用事务接口编写会话Beans了:

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

引入了Singleton Beans:引入Singleton beans概念主要是为了共享应用数据和支持一致性访问,当一个Bean被标记为Singleton时,在整个应用层容器只能保证每个JVM共享一个实例,对于缓存这一规定是行之有效的,Singleton beans和其它EJB一样,它们是开发人员可以通过注解将它们标记为Singleton beans的POJO。

默认情况下,所有Singleton beans都是事务性和线程安全的,具有灵活的并发性选项,Java EE 6也引入了并发性注解在getter和setter函数上执行锁定的读/写操作。

  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中一个重要的改进是可以直接将EJB组建打包到WAR文件中,不用再独立创建jar文件了,EJB 3.1为Web应用程序提供了一个简化的打包机制,图1显示了EJB 3.1以前的打包方式。

EJB 3.1之前的打包方式(EJB 3.0打包结构) 
图 1 EJB 3.1之前的打包方式(EJB 3.0打包结构)

使用EJB 3.1后,开发人员可以直接将classes目录下的EJB和servlets一起打包到WAR文件中,图2显示了EJB 3.1的打包方式。

EJB 3.1打包方式结构图 
图 2 EJB 3.1打包方式结构图

在Java SE环境中嵌入API执行EJB:这个特性背后的思想是允许EJB在Java SE环境中运行,即客户端和EJB在相同的JVM中运行,为了运行EJB,Java EE 6提供了一个嵌入式EJB容器,使用JNDI进行检查,这为测试,批处理过程和在桌面应用程序中使用EJB提供了便利,嵌入式EJB容器提供了一个管理EJB的环境,这个环境支持有限的服务,javax.ejb.EJBContainer类表示一个嵌入式容器。

异步会话Beans:一个支持异步函数调用的会话Bean,使用@Asynchronous注解的Bean函数是异步调用的,在EJB 3.1之前,在会话Bean上的任何函数调用都是同步的。异步函数可以返回一个java.util.concurrent API的Future对象,当客户端想获取调用的状态时这个非常有用,通过检索函数返回的值,检查一个异常,或者取消调用。

EJB Lite:许多企业级应用不需要EJB完整的功能,因此在EJB 3.1中引入了EJB Lite,它是EJB API的一个子集,EJB Lite包括了创建一个企业级应用的所有功能,但不包括专业的API。EJB Lite提供了厂家选项,让厂家可以在它们自己的产品中实施EJB API的子集,使用EJB Lite创建应用程序可以部署到任何支持EJB的服务器上,不管它是完整的EJB还是EJB Lite,嵌入式容器也支持EJB Lite,EJB Lite有以下EJB API子集:

◆会话Bean组件(Stateless,stateful和singleton会话Bean)

◆只支持同步调用

◆容器管理和Bean管理事务

◆声明和编程安全

◆截取器

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

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

EJB 3.1 Lite和EJB 3.1完整版支持的功能对比 
图 3 EJB 3.1 Lite和EJB 3.1完整版支持的功能对比

原文:New Features in Java EE 6

作者:Sangeetha S.

【编辑推荐】

  1. 为什么我喜欢EJB 3.0并且尤其喜欢EJB 3.1
  2. Java开发三剑客JSF2.0、EJB3.1、JPA2.0现状及发展
  3. EJB3.1新特性一览 Time服务更强大
  4. EJB初学者常见的12个困惑问与答
  5. Java语言中关于EJB技术的概论
【责任编辑:杨赛 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

我的运维日志系统构建之路

我的运维日志系统构建之路

数据驱动运维
共18章 | 我叫于小炳

191人订阅学习

CentOS文件服务的最佳实战

CentOS文件服务的最佳实战

涨薪跳槽必备技能
共15章 | 追风蚂蚁

88人订阅学习

小白网工宝典

小白网工宝典

一次搞定思科华为
共15章 | 思科小牛

431人订阅学习

读 书 +更多

非常网管——网络服务

本书使用通俗易懂的语言,通过大量的实例,从实际应用的角度出发,全面系统地介绍了网络服务操作系统平台、电子邮件系统、Web站点和FTP站点...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客