领先的中文IT技术网站    IT技术从现在起飞

飞诺旗下: 技术社区 | 在线电子书 | 在线试题 | 资源下载 | 飞诺搜索 | 技术博客
用户名: 密   码:
   飞诺网 加入收藏
飞诺网 Java 新闻频道 开发频道 系统频道 服务器 网络频道 网络安全 Java频道 C/C++ PHP开发 电子书 资源下载 社 区 博 客 在线试题
软件编程 C C++ Java VB Delphi Foxpro 汇编语言 游戏开发 移动开发 软件工程师 软工与管理 VC shell编程 C#
编程开发 JAVA C/C++ C++ VC C语言 VB C# Delphi Foxpro 汇编 shell编程 游戏开发 软件工程师 WEB开发 PHP ASP Asp.net JSP AJAX CGI JavaScript HTML CSS 数据库 MSSQL Mysql Oracle Access Sybase DB2 sql2005 Office Word Excel Powerpoint Wps 认证考试 二级C语言 三级网络 程序员 网络工程师 思科认证

您当前的位置:飞诺网 >> java >> Java技术文章

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 的历史 图 1. Java EE 的历史

与一些新技术的大多数早期版本一样,Java EE 规范的以前版本中存在一些“难点”,其中包括:

  • 业务逻辑编程的复杂性。
  • 持久性编程模型的复杂性和性能。
  • 表示层/逻辑混合。
  • Web 服务的类型、复杂性、文档模型、扩展和性能。
  • 多成员团队开发。
  • 漫长的编辑-编译-调试周期。

这时,毫无疑问,Java EE 5 规范的主题就是简化,这一目标已通过改善以下领域的开发体验得到实现:

  • 简化业务逻辑开发。
  • 简化测试和依赖关系管理。
  • 简化 O/R 持久性。
  • 增强 Web 服务编程模型。

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 的一些可能的预期。

回页首

EJB 3.0

对于 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 的更新。

EJB 3.0 简化

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); }
    您的 Bean 类可以实现以下接口: 清单 2
    @Stateless public class StockBean implements Stock public double getQuote(String symbol) { return 100.33; } }
    在上面的示例中,@Stateless 标注意味着此类现在是一个无状态的会话 Bean,并且使用业务接口来调用它。还可以在不实现特定接口的情况下对无状态会话 Bean 进行编码,而且可以通过容器生成一个: 清单 3
    @Stateless public class StockBean public double getQuote(String symbol) { return 100.33; } }
    缺省情况下,除非特别标注,否则,所有公共方法都包括在业务接口中。例如,如果使用 @BusinessMethod 至少指定一个方法,则只有使用 @BusinessMethod 指定的方法才包括在业务接口中: 清单 4
    @Stateless public class StockBean @BusinessMethod public double getQuote(String symbol) { return 100.33; } }
    现在已经创建了一个接口,那么如何指定一个方法是远程的还是本地的?当然,可以使用一个标注: 清单 5
    @Stateless public class StockBean @Remote public double getQuote(String symbol) { return 100.33; } }
    您可以标注业务接口或者 Bean 类本身。当选择生成业务接口时,在 Bean 类上启用标注非常有用。

EJB 3.0 规范的更新包括以下内容:

  1. 容器服务
  2. 回调
  3. 拦截器
  4. 依赖项注入
  1. 容器服务

    EJB 组件由于隐式支持事务管理和安全性,因此非常受欢迎。EJB 3.0 规范使用标注(和 XML)来应用容器服务。下面给出了一个示例,介绍如何在无状态会话 Bean 上指定事务属性。 清单 6

    @Stateless public class StockBean { @TransactionAttribute(TransactionAttributeType.REQUIRESNEW) public double getQuote(String symbol) { return 100.33; } }
    此标注意味着,该方法将在新事务中运行。请参见规范,了解不同标注的具体语法和语义,但相同事务和安全功能都有标注。还可以使用 XML 部署描述符应用容器服务,而XML 部署描述符可以在部署时覆盖启用灵活性的标注。

  2. 回调 <

  3.  1 2 3 4 5 6
    如果图片或页面不能正常显示请点击这里
Java技术文章推荐文章

文章评论

BBS社区热贴