2013 年 6 月中旬甲骨文公司发布了 Java EE 7,该版本的新特性主要集中在提高开发人员的生产力、加强对 HTML5 动态可伸缩应用程序的支持和进一步满足苛刻的企业需求这三个方面。Java EE 7 使得开发人员可以写更少的样板代码,通过丰富的组件来提供一个完整、全面、集成的堆栈来支持和构建最新的 Web 应用程序和框架,同时提供更具扩展性、丰富性和简易的功能。企业将会从便捷式批处理、改进的扩展性等新功能中获益。 本文将通过对这个版本中新增组件 WebSocket 1.0、JSON Processing 1.0、JAX-RS 2.0、JSF 2.2 和 JMS 2.0 的介绍及若干示例的展示,来对以上三个特性进行详细的剖析。 Java EE 7 的简介Java EE 作为一个企业应用的部署平台,具有很好的健壮性、能够提供强大的 Web 服务且非常易于部署。这些年来,通过其不断发展,它已大大简化了以服务器为中心的应用程序的开发、部署和管理,已经逐渐成为企业级开发的通用标准。 1999 年,Sun 正式发布了 J2EE 的第一个版本。但从 1999 年诞生的第一个 J2EE 版本一直到 J2EE 1.4 版本,虽然它已经具有了强大的功能,但仍不太被人们接受。这是因为连实现一个简单的 J2EE 程序,都需要大量的配置文件,非常不便使用。在 2002 年,J2EE 1.4 推出后,复杂程度更是达到了顶点,尤其是 EJB 2.0,开发和调试的难度非常大。 2006 年 5 月份 Sun 正式发布了 J2EE 1.5(现改名为 Java EE 5)规范,Java EE 5 的主基调为“简化开发”。即让开发者能够更方便、高效地使用 Java EE 技术。从 Java EE 5 开始,通过引入注释、EJB 3.0 的业务组件、更新的 Web 服务和加强的持久化模型,将重心转移到提高开发人员的生产力上来。 Java EE 6 进一步简化开发流程,增加平台的灵活性,从而更好地解决轻量级 Web 应用程序。此外,Java EE 6 开始与开源架构进行无缝集成,并对现有的技术做了精简。实践证明,Java EE 6 取得了巨大成功,成功的原因主要有下面几点:
图 1. Java EE 7 新特性 Java EE 7 扩展了 Java EE 6,利用更加透明的 JCP 和社区参与来引入新的功能,如图 1(本图引用自 Java 官网)所示,主要包括加强对 HTML5 动态可伸缩应用程序的支持、提高开发人员的生产力和满足苛刻的企业需求。 1、提高开发人员的生产力 通过一个紧密集成的平台简化了应用架构,减少样板代码和加强对注释的使用来提高效率,另外借助标准 RESTful Web 服务对客户端的支持提高了应用程序的可移植性。 2、加强对 HTML 5 动态可伸缩应用程序的支持 基于其可扩展的基础架构,Java EE 7 推动了对 HTML 5 应用的构建和支持。在新的平台中,借助具有行业标准的 JSON 简化了数据分析和交换,并通过低延迟和双向通信的 WebSockets 减少了响应时间。以及利用改进的 JAX-RS 2.0 更好地支持异步的、可扩展的、高性能的 RESTful 服务,从而更好地支持多用户的并发操作。 3、满足苛刻的企业需求 为更好地满足企业的需求,Java EE 7 提供了许多新功能:
Java EE 7 开发的开放性,使得 Java 社区、供应商、组织和个人都能参与其中。19 个来自世界各地的用户组,包括来自北美、南美、欧洲和亚洲,都参与了“采用 JSR”计划,提供了宝贵的反馈意见和代码示例以验证 Java 规范 (JSR) 的 API。 在最新发布的 Java EE 平台中都大大简化了访问集装箱服务的 API,同时大大拓宽了服务范围。Java EE 7 继续秉承了简化性和高效性的趋势,并进一步拓宽了平台范围。下面就针对 Java EE 7 的三大新特性进行详细的剖析。 提高开发人员的生产力从 Java EE 5 开始,重心就一直放在提高开发人员的生产力上。这对于 Java 开发者来说非常重要,因为这使得使用 Java EE 进行开发更加便捷,更重要的是能够满足快速管理和生产的需求。鉴于此,Java EE 7 大大提高了开发人员的生产力。首先,减少了编写大量核心业务逻辑所需要的样板代码。其次,该平台引入更多的注释 POJOS 来降低 XML 配置的复杂性。最后,Java EE 7 使用更紧密集成的技术,提供一个更加无缝的开发体验。 减少冗余代码Java EE 7 一直在致力于减少在核心业务逻辑代码运行前必须执行的样板代码。减少样板代码的三大核心区域是默认资源、JMS 2.0 和 JAX-RS 客户端 API。默认资源是一个新的功能,要求平台提供商预配置一个默认的数据源和一个默认的 JMS 连接工厂。这可以让开发人员直接使用默认的资源而无需进行额外的定义。JMS2.0 在可伸缩性和可移植性上经历了重大的改进,减少了冗余代码,已运用在无数的产品部署上,事实证明它是一个良好的规范,能够较好地满足企业的需求。 更多带注释的POJO通过注释 Java EE 使开发人员更专注于 Java 对象的编程而无需关注繁琐的配置。 CDI 现在默认情况下已不需要使用 beans.xml 文件就可以直接使用。开发人员可以不需要任何配置而是简单的使用 @Inject 来注入任何 Java 对象。包括新的资源注释 @JMSDestinationDefinition 和 @MailSessionDefinition ,使得开发人员在源代码中就可以指定元数据资源,简化了 DevOps 体验。 |