JAVA EE 5 的发展史
www.firnow.com 时间 : 2008-07-04 作者:佚名 编辑:本站 点击: [ 评论 ]
纵观 Java Platform, Enterprise Edition (Java EE) 规范的历史可以看出,每次重大修订都是由一个重要主题推动的。例如,第一次发布 J2EE™ 1.2 时,伴随的重要主题是首次将单独的规范绑定在一起,后来,在 J2EE 1.4 中,关注的重要主题则是 Web 服务。图 1 显示了 Java EE 的摘要历史,列出了每个版本的重要功能以及促成每次修订的一些重要外部影响。
图 1. Java EE 的历史
与一些新技术的大多数早期版本一样,Java EE 规范的以前版本中存在一些“难点”,其中包括:
这时,毫无疑问,Java EE 5 规范的主题就是简化,这一目标已通过改善以下领域的开发体验得到实现:
Java EE 5 中的许多升级都受到商业和开放源代码领域创新技术的影响,例如 Hibernate、Spring、Service Data Object (SDO) 以及其他技术。另外,还预期对规范的级别进行升级,做一些小幅度的改进。
为您使用 Java EE 5 做准备,本文重点介绍新规范的一些主要功能,如 EJB 3.0、Java Persistance Architecture (JPA)、Web 服务、JAX-WS 及其他一些内容,然后简单地介绍我们对 Java EE 6 的一些可能的预期。
|
对于 Java EE 5 中的所有技术增强而言,Enterprise JavaBean™ (EJB) 3.0 是最为显著的,已对它的外观进行了很大的更改,明显简化了开发。EJB 3.0 规范已拆分为三个子规范:
EJB 3.0 简化 API:定义用于编码 EJB 组件(特别是会话 Bean 和消息驱动的 Bean)的新简化的 API。
核心契约和要求:定义 Bean 和 EJB 容器之间的 EJB 契约。
Java 持久性体系结构 API:为持久性定义新实体 Bean 模型。
下一部分描述 EJB 3.0 和 JPA API 的更新。
POJO(传统 Java 对象)是最近经常提到的一个术语,它是指编写为简单 Java 类的代码。由于 EJB 2.x 程序要求您扩展特定的类、提供多个接口并编写部署描述符,因此它们被视为“重载”的 Java 对象,而不再是简单的对象;而且,还需要 J2EE 容器来运行和测试它们。EJB 3.0 的更改包括:
EJB 组件不再要求主接口。另外,不再需要 EJB 组件提供不同的接口或扩展任何特定于 EJB 的类。
J2SE 5.0 标注现在是实现 EJB 3.0 组件的一个主要辅助方法。通过指定特殊的标注,开发人员可以创建 EJB 组件的 POJO 类,并将其作为 XML 的备选方案。
EJB 3.0 引入了业务接口概念,而非单独的远程和本地接口。下面给出了它的一个示例: 清单 1
| public interface Stock { public double getQuote(String symbol); } |
| @Stateless public class StockBean implements Stock public double getQuote(String symbol) { return 100.33; } } |
| @Stateless public class StockBean public double getQuote(String symbol) { return 100.33; } } |
| @Stateless public class StockBean @BusinessMethod public double getQuote(String symbol) { return 100.33; } } |
| @Stateless public class StockBean @Remote public double getQuote(String symbol) { return 100.33; } } |
EJB 3.0 规范的更新包括以下内容:
EJB 组件由于隐式支持事务管理和安全性,因此非常受欢迎。EJB 3.0 规范使用标注(和 XML)来应用容器服务。下面给出了一个示例,介绍如何在无状态会话 Bean 上指定事务属性。 清单 6
| @Stateless public class StockBean { @TransactionAttribute(TransactionAttributeType.REQUIRESNEW) public double getQuote(String symbol) { return 100.33; } } |
回调 <