异步会话Bean调用
EJB 3.1引入了一个强大功能,那就是可以异步调用会话Bean方法。对于一个异步调用,允许会话Bean执行它的操作时,客户端并行处理其它事情。
通过@Asynchronous注解让一个方法支持异步,也可以使用一个部署描述符将一个方法指定为异步的。
异步方法可以返回一个java.util.concurrent.Future<V>或void对象,Future<V>对象容纳了异步操作返回的结果,你可以访问Future<V>对象检索一个结果值,检查异常或取消一个正在处理中的调用。Future<V>接口提供一个get()方法检索值,当然,你也可以其它合适的类检索值,如 AsyncResult<V>,实际上它自己实现了一个Future<V>接口。
在下面的例子中,performCalculation()方法是异步的,它使用AsyncResult<V>类检索Future<V>对象返回的值。
1.@Stateless
2. Public class CalculatorBean implements CalculatorService {
3. ...
4.
5. @Asynchronous
6. public Future<Integer> performCalculation(...) {
7.
8. // ... do calculation
9.
10. Integer result = ...;
11. return new AsyncResult<Integer>(result);
12. }
13. }
14.
简化打包
EJB规范始终要求企业Bean打包到一个叫做ejb-jar文件的企业模块中,因为它一般用于Java EE Web应用程序,这种打包方法显得有些累赘,应用程序被强制使用一个Web应用程序使用的归档文件(.war),一个企业Bean使用的ejb-jar文件,还有一个包含其它包的企业归档文件(.ear),如图1所示,这种打包方法非常复杂,它需要指定模块之间共享的类和资源。
EJB 3.1解决了这个问题,简化了打包的复杂程度,彻底消除了企业Bean类必须打包进ejb-jar文件的限制,如图2所示,现在你可以直接将EJB类放到.war文件中,使用打包Web应用程序类相同的打包规则,这意味着你可以将EJB类放到WEB-INF/classes目录下,或者放到WEB- INF/lib目录下的一个.jar文件中。EJB部署描述符也是可选的,如果你需要它,你可以将EJB部署描述符打包到WEB-INF/ejb- jar.xml文件中。
轻量级EJB(EJB Lite)
对许多应用程序而言,EJB提供了比应用程序真正需要的多得多的功能,使用EJB的应用程序通常只需要使用EJB 3.1的一个子集,轻量级EJB就是为满足这种需要诞生的。
轻量级EJB简化了许多开发人员使用EJB,使用轻量级EJB的开发人员在他们的应用程序中需要学习使用一部分功能即可。此外,使用轻量级EJB开发的应用程序可以运行在轻量级EJB或全功能EJB 3.1 API实现的应用程序服务器上。
注意,轻量级EJB不是一个产品,它是EJB 3.1 API的一个子集,轻量级EJB的目标是提供EJB 3.1的一个子集,满足大多数应用程序业务逻辑层的需要,它也为供应商提供了更好的灵活性,为了满足这些模板,轻量级EJB提供了以下功能:
1、有状态,无状态和单元素集合会话Bean;
2、本地EJB接口或无接口;
3、拦截器;
4、容器管理的和Bean管理的事务;
5、声明和编程安全;
6、嵌入式API。
更多EJB 3.1新特性
EJB 3.1除前面谈到的这些新特性外,还带来了更多的新特性和改进,例如,它包括一个用于Java SE环境的嵌入式API和容器,这些特性使在Java EE容器外(通常指Java SE环境)测试EJB 组件更容易,另外,EJB 3.1引入的单元素集合为EJB应用程序提供了一个方便的方法,在应用程序初始化或关闭期间接受反馈,默认情况下,由容器决定何时实例化单元素集合实例,但你可以通过@Startup注解,强制容器在应用程序初始化期间实例化单元素集合实例,允许Bean定义一个@PostConstruct方法保证在应用程序启动时调用,此外,@PreDestroy方法可以保证应用程序关闭时调用。
分享到:
相关推荐
EJB 3.1五大模式改进令Java EE 6更好用
EJB3.1深入浅出EJB3.1深入浅出
EJB3.1技术培训:1、EJB3.1概述 Session Bean开发 Session Bean生命周期事件 Session Bean调用方式
EJB3.1这本书从各种bean的方面介绍了ejb3.1,ejb3.1拟补了3.0的不足,为ejb的广泛应用打下了基础,它既有重量级的应用,又融合了轻量级的应用。这次上传的是这本书的源代码
对于EJB3.1的学习与积累,对于EJB3.1的发展历史,生命周期,企业bean组件重点介绍
EJB 3.1 Cookbook(英文版) EJB 3.1 Cookbook(英文版) EJB 3.1 Cookbook(英文版)
这是EJB3.1规范文档(JSR 318),相对EJB3.0来说,新增了特性有:1.取消接口 2.引入Singletonsinessionbean. 3.Asynchronous调用 4.规范了JNDInames 5.提供了更强大的Time服务。 6.推出EJBLiteEJB容器简化版 等等
He is the author of a Java EE 5 book in France and is also an Expert Member on Java EE 6, EJB 3.1, and JPA 2.0. He is the cofounder of the Paris Java User Group. For more, visit ...
jboss7.1+ejb3.1建立第一个Ejb项目希望可以帮到你
使用Netbeans 7.3 开发基于JSF, EJB, JPA的应用程序. JSF实用primefaces 3.4, 数据库使用oraclexe 11g. 注: 该文档是在原作者的netbeans6.8, javadb的基础上修改的,并在netbeans 7.3中测试成功.
这是ejb3.1用jboss7.1.1开发的HelloWorld文档,网上有一个和这个差不多,但是有些错误,这个是修正版的
EJB 3.1 Cookbook – Free Pdf Book
EJB 3.1 Core Contracts and Requirements
Java EE 6 规范包括EJB 3.1 •Servlet 3.0 •JSP 2.2 •EL 2.2 •JMS 1.1 •JTA 1.1 •JavaMail 1.4 •Connector 1.6 •Web Services 1.3 •JAX-RPC 1.1 •JAX-WS 2.2 •JAX-RS 1.1 •JAXB 2.2 •JAXR 1.0 •Java EE...
_EJB3.1javaFX搭建工程.doc
本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message Driven Bean的详细介绍。本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识...
第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...
继ejb3.0后,3.1版本推出的功能更完善
经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2