异步会话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更好用 在深入解析EJB 3.1的五大改进模式之前,我们首先简要回顾一下EJB(Enterprise Java Beans)的基本概念及其在Java EE平台中的重要性。EJB是Java EE的核心组件之一,旨在...
EJB3.1在前代版本的基础上做了大量的改进和增强,使得开发者能够更加高效地进行企业级应用的开发。 - **Session Bean开发**: - **会话Bean (Session Bean)**:是EJB的核心之一,主要负责与客户端交互以及执行业务...
EJB 3.1(Java EE 6 的一部分)是一个重要的里程碑,它在原有基础上进行了大量的改进,提供了更简洁、更易用的 API,使得开发者能够更加高效地构建企业级应用。 - **EJB 容器**:EJB 容器是 EJB 组件运行的环境,它...
同时,他还参与了多个Java EE规范的制定工作,包括JSR-316(Java EE 6)、JSR-317(JPA 2.0)和JSR-318(EJB 3.1)。 #### 七、书籍详情 - **页数**: 536页 - **出版社**: Apress(2010年8月出版第二版) - **语言...
- **EJB 3.1 Lite**:Java EE 6 中的EJB 3.1 版本进一步简化了企业级组件的开发过程,特别是通过EJB 3.1 Lite 在Web Profile 中的出现,使得开发者能够在不牺牲性能的情况下轻松地集成业务逻辑。 - **Servlet 3.0**...
5. **更好的集成性**:EJB 3.1增强了与其他Java EE技术的集成能力,如JSF、JPA等。 #### 三、EJB 3.1组件类型 EJB 3.1定义了几种主要的组件类型,每种类型都有其特定的应用场景和优势: 1. **会话Bean**: - **无...
Java EE 6中的EJB 3.1简化了之前的版本,使得编写业务逻辑变得更加简单。 4. **Contexts and Dependency Injection (CDI)**:CDI是一种新的依赖注入框架,它提供了更灵活的依赖管理和事件处理机制,极大地简化了组件...
#### 二、Java EE 6 教程使用许可与限制 - **教程与示例代码许可**: - 教程本身提供了对 Java Platform, Enterprise Edition 的应用开发指导,而随附的“示例代码”则根据 Berkeley 许可协议单独授权。 - 用户...
EJB(Enterprise JavaBeans)是Java EE平台中的一个核心组件,用于构建企业级分布式应用程序。实体Bean(Entity Bean)是EJB的一种类型,它代表业务逻辑中的持久化对象,通常映射到数据库中的表。本篇文章将深入探讨...
### Java EE 6 标准与规范中文版关键知识点概览 #### 一、平台概述 **1.1 体系结构** Java EE 6 的体系结构主要包括以下几个方面: - **应用程序组件**:如Web应用程序、EJB(Enterprise JavaBeans)模块、...
2. **JSF 2.0(JavaServer Faces)**: 作为Java EE 6的一部分,JSF 2.0提供了更简洁的组件模型和更强大的表单处理能力,简化了用户界面的开发。 3. **EJB 3.1(Enterprise JavaBeans)**: EJB 3.1引入了更多的轻量...
2. 创建EJB项目:在开发环境中(如Eclipse或JDeveloper),创建一个新的Java EE项目,并添加EJB模块。选择合适的EJB版本(如EJB 3.0或EJB 3.1),并创建对应的bean类。 3. 编写EJB:根据业务需求,编写会话bean、...