`
yingfang05
  • 浏览: 119364 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

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

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

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

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

@Singleton @Startup public class CounterBean {     private int count;     @PostConstruct    public void initialize() {         count=5;      }  } 
直接用WAR文件打包EJB组件:EJB 3.1中一个重要的改进是可以直接将EJB组建打包到WAR文件中,不用再独立创建jar文件了,EJB 3.1为Web应用程序提供了一个简化的打包机制。

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

在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)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics