FOV

 


Oracle 应用服务器徽标

EJB 3.0 支持

  2005 年 7 月

简介

企业 JavaBean (EJB) 3.0 的目标是简化 Java 应用程序的开发,并实现 Java 平台的持久性 API 的标准化。EJB 3.0 有望成为 J2EE 平台下一个主要修订版 J2EE 5.0 的一部分。EJB 3.0 按照 Java Community Process (JCP) 下的 Java 规范要求 220 (JSR-220) 开发,且 Oracle 是此规范的联合制定人。

迄今为止,JCP 已经发布了多个 EJB 3.0 规范草案,Oracle 针对这些草案在 Oracle 应用服务器 10g (10.1.3) 中实现了 EJB 3.0 支持。

Oracle 应用服务器 10g 10.1.3 开发人员预览版 4 中,Oracle 实现了 EJB 3.0 公共草案规范的大多数主要特性。可以在 Oracle 技术网上下载并试用此容器。

EJB 3.0 预览版特性的目标是提供一个平台,让开发人员提早试用高质量的完整 EJB 3.0 实现,并确定 EJB 3.0 将在多大程度上满足开发人员的要求,同时使标准化组织可以获得早期反馈。

Oracle 应用服务器 10g (10.1.3) 开发人员预览版中的关键特性

简化的 API

EJB 3.0 的主要设计目标是简化开发人员的开发过程。在 EJB 的早期版本中,开发人员在使用众多的 API 以及复杂的部署描述文件时经常感到困难。 Oracle 应用服务器 10g (10.1.3) 开发人员预览版提供了由 EJB 3.0 公共草案定义的简化模型的完整实现。

  • 简化的 EJB
  • EJB 3.0 不再需要主接口和组件接口,并且不需要 bean 类实现 javax.ejb.EnterpriseBean 接口。EJB bean 类可以是纯 Java 类(通常称作 POJO);接口可以是简单的业务接口。bean 类可以实现业务接口。

  • 使用批注代替部署描述符
  • 元数据批注已经可以作为部署描述符的替代品。可以使用批注指定 bean 类型、不同的属性(如事务或安全设置)、对象关系映射以及环境或资源引用的注入。可以使用部署描述符覆盖元数据批注。

  • 相关性注入
  • 用于查找和使用 EJB 环境和资源引用的 API 已经得到简化,并改用相关性注入。将元数据批注用于相关性注入。

  • 增强的生命周期方法和回调监听程序类
  • 与 EJB 的先前版本不同,bean 开发人员不必实现所有不必要的回调方法,但可以将任意方法指定为回调方法以接收生命周期事件通知。

    还可以使用回调监听程序类代替在同一 bean 类中定义的回调方法。

  • 拦截器
  • 拦截器是一个用于拦截业务方法调用的方法。可以在无状态会话 Bean、有状态会话 Bean 或消息驱动 Bean 中定义拦截器方法。还可以使用拦截器类而不必在 bean 类中定义拦截器方法。

  • 对 EJB 进行简单的 JNDI 查找
  • EJB 的查找已经得到简化,客户端不必通过对 EJB 调用 create 方法来创建 bean 实例,而是可以对 EJB 直接调用方法。

会话 Bean

消息驱动 Bean

  • 简化的 MDB
  • 消息驱动 Bean 不必实现 javax.ejb.MessageDriven 接口,它们实现 javax.jms.MessageListener 接口。

  • 元数据批注
  • 元数据批注用于指定 bean 或接口,以及 MDB 的运行时属性。例如,MDB 使用 @MessageDriven 进行标记以指定 bean 类型。

  • 增强的生命周期方法和回调监听程序
  • 回调监听程序支持 MDB。这些回调方法既可以使用批注指定也可以使用部署描述符指定。

  • 相关性注入
  • 可以从 MDB 中使用相关性注入。开发人员使用元数据批注或部署描述符注入由 MDB 使用的资源、EJB 上下文或环境条目。

  • 拦截器
  • 拦截器方法或拦截器类可用于 MDB。

实体 Bean/持久性 API

  • 简化的实体 Bean(POJO 持久性)
  • EJB 3.0 显著简化了实体 bean 并对 POJO 持久性模型进行了标准化。实体 Bean 是具体的 Java 类,并且不需要任何接口。实体 bean 类支持多态性和继承。实体可以拥有不同类型的关系,且容器托管关系由开发人员手动管理。

  • 实体管理器 API
  • EJB 3.0 引入了 EntityManager API,用于创建、查找、删除和更新实体。

    EntityManager API 引入了拆离/合并实体 bean 实例的概念(类似于值对象模式)。bean 实例可以被拆离,并可以由客户端在本地更新,然后将其返回给 EntityManager 以与数据库合并/同步。

    Oracle 应用服务器 10.1.3 开发人员预览版为 EJB 容器内部和外部的 EntityManager API 提供了全面的支持。

  • 元数据批注
  • 元数据批注通过消除对部署描述符的需要显著简化了实体开发。实体批注用于将类指定为实体 bean。批注用于指定事务属性、安全权限、回调监听程序和批注过的查询。

    Oracle 应用服务器 10.1.3 开发人员预览版支持使用元数据批注指定的对象关系映射。

  • 查询语言增强
  • EJB 3.0 显著改进了实体的查询功能。它通过其他操作(如批量更新和删除、JOIN 操作、GROUP BY HAVING、投影和子查询)增强了 EJB-QL。此外,还可以使用 EJB QL 编写动态查询。 Oracle 应用服务器 10.1.3 开发人员预览版支持查询语言的大多数增强功能。

  • 增强的生命周期方法和回调监听程序
  • 回调监听程序支持实体 bean。这些回调方法既可以使用批注指定也可以使用部署描述符指定。

  • 容器外部的可用性
  • 可以在容器外部使用 Oracle 应用服务器 10.1.3 开发人员预览版的 EJB 3.0 可持续性引擎。

 

Oracle 应用服务器 EJB 3.0 预览版中提供的 EJB 3.0 特性列表

会话 Bean

  • POJO bean 类 - 不需要实现 javax.ejb.SessionBean 接口
  • POJI 接口 - 不需要扩展 javax.ejb.EJBObject 或 javax.ejb.EJBLocalObject 接口
  • 可选的主接口
  • 元数据批注
  • 简化的异常处理
  • EJBContext、资源和环境引用的相关性注入
  • 增强的生命周期方法和回调监听程序类
  • 拦截器方法和类
  • 按步骤说明如何将 EJB 2.1 会话 Bean 移植到 EJB 3.0
  • 具有 XML 部署描述符的 JDK 1.4 支持

实体 Bean

  • 轻型持久性模型
  • 无组件接口
  • EntityManager API
  • 对象关系映射的元数据批注
  • 默认映射
  • 查询语言增强(批量更新、命名的参数)
  • 回调监听程序
  • J2EE 容器之外

 

 

 

 

消息驱动的 Bean

  • POJO bean 类 - 不需要实现 javax.ejb.MessageDriven 接口
  • 元数据批注
  • EJBContext、资源和环境引用的相关性注入
  • 增强的生命周期方法和回调监听程序类
  • 具有 XML 部署描述符的 JDK 1.4 支持

 

 

返回页首

总结

EJB 3.0 简化了 J2EE 组件编程模型,并对 J2EE 的 POJO 持久性模型进行了标准化。 Oracle 应用服务器 10g 10.1.3提供了业界第一批全面的 EJB 3.0 实现之一。

 

 

返回页首

 

甲骨文公司
全球总部:
500 Oracle Parkway
Redwood Shores, CA 94065

全球咨询:
+1.650.506.7000
传真:+1.650.506.7200
http://www.oracle.com/

版权所有,甲骨文公司 2005
保留所有权利

本文档只用于参考目的,
其中包含的信息如有更改,
恕不另行通知。请将本文中出现的任何错误报告给
甲骨文公司。甲骨文公司不提供
任何担保声明,尤其是不承担与本文相关的任何
责任。

Oracle 是 Oracle Corporation 的注册商标。

本文提到的所有其他公司和产品名称只用于
标识目的,并且可能是其各自所有者的商标