Java EE 7有什么新功能

作者: 54b59ee78c42 | 来源:发表于2015-02-28 13:38 被阅读334次

    为改善平台的功能性和丰富性,增加了一些新的规范。为使平台更简单、更易用,修订了几个现有的组件规范。

    1.3.1 新的规范

    新规范的主要功能描述如下。

    1.Java API for WebSocket

    • 通过声明方式注解一个POJO或者通过编程方式实现接口来定义一个WebSocket的客户端和服务器端点。
    • 提供服务器特定的配置,比如在容器的URI空间中、端点支持的子协议中,以及应用程序所需的扩展中标识WebSocket端点的映射。
    • 提供客户端特定的配置,比如提供自定义配置的算法。
    • 启用在JDK或Web容器上打包和部署。
    • 允许与现有的Java EE技术集成。

    2.Java API for JSON Processing

    • 流式API用于提供以流的方式解析和生成JSON。
    • 对象模型API用于创建随机访问和树状结构来表述内存中的JSON数据。

    3.Batch Applications for Java Platform

    • 使用XML模式的作业规范语言(Job Specification Language)来描述批处理作业,定义了完整的作业执行顺序。
    • 使用接口、抽象类和字段注释来定义批处理编程模型的功能。
    • 提供了Chunked和Batchlet两种作业处理方式。

    4.Concurrency Utilities for Java EE

    • 提供了Java EE应用程序组件的并发能力,而不影响容器的完整性。
    • 定义了托管对象:ManagedExecutorService、ManagedScheduledExecutorService、ContextService和ManagedThreadFactory。

    1.3.2 更新的规范

    更新后,规范的主要功能描述如下。

    1.Java API for RESTful Web Services

    • 提供了一个新的客户端API,用于访问网络资源和提供与JAX-RS的providers整合。
    • 支持在客户端API和服务器API之间的异步处理。
    • 定义了消息过滤器和实体拦截器作为定制客户端和服务器两端的请求/响应处理的扩展点。
    • 引入QS因子作为服务器端新的内容协商。
    • 字段、属性和使用@HeaderParam、@QueryParam等注解注入的参数可以使用声明式验证。资源类可以使用约束注解。

    2.Java Message Service

    • 为使JMS API更简单和易用,做出了多处修改。例如,Connection、Session和其他对象的close方法现在实现了java.lang.Autocloseable接口,可以在Java SE 7的try-with-resources语句中使用。增加了无需提供冗余参数创建会话的新方法。增加了getBody的新方法,允许应用程序直接从Message获取消息体,而无需首先将其转换为适当的子类型。
    • 消息生产者现在可以指定一个在指定的时间间隔之后才被传送的消息。
    • 增加了允许应用程序异步发送消息的发送方法。
    • JMS提供者现在必须设置JMSXDeliveryCount消息属性。

    3.Expression Language

    • 表达式语言(EL)是一个独立的规范,它可以使用ELProcessor在Java EE容器之外配置和使用。
    • 表达式语言包含了lambda语法。现在,使用lambda表达式可以支持一套完整的集合操作,如map和过滤器。
    • 除了通常的算术和比较操作符,还加入了新的操作(比如赋值运算符和字符串连接运算符),使表达式语言更具表现力。

    4.Enterprise JavaBeans

    • 对EJB 2.1、EJB QL和基于JAX-RPC的Web服务端点和客户端视图的支持现在是可选的。
    • 使用没有方法的消息监听器接口,增强了消息驱动Bean(MDB)的约束。MDB暴露所有公共方法作为消息监听器方法,这将允许为将来的更多的MDB自定义资源适配器。
    • 使用清晰的规则为EJB精简版容器定义了EJB API组来支持其他的API组,有助于定义如何将超越EJB精简版的EJB功能正式地加入到不支持完整功能的Java EE Profile的产品中。
    • EJB精简版包含了异步会话Bean调用和非持久性的EJB定时器服务。
    • 增加了一个选项来禁用有状态会话Bean的钝化。

    5.Servlets

    • 定义了使用HttpUpgradeHandler升级现有的HTTP连接到不同的协议的标准机制。
    • 为异步Servlet提供了非阻塞请求和响应处理。
    • 定义了HTTP方法被<securityconstraint>覆盖的规则。

    6.JavaServer Faces

    • Faces Flow封装了与应用程序定义的入口点和出口点相关的视图、页面。
    • 资源库约束使开发人员能够以可重用的和可互换的方式,将Facelet模板应用到整个应用程序。
    • HTML5友好的标记允许几乎完全控制视图中每个元素的用户体验。
    • 无状态视图意味着开发人员不再需要保存UIComponentstate,这允许应用程序使用JavaScript组件来代替JSF管理状态。

    7.Java Persistence

    • 可以通过使用javax.persistence.schema-generation.*属性来创建数据库和表。
    • 非同步的持久化上下文意味着一个持久化上下文无需登记在一个事务中,这样的持久化上下文可以显式地加入事务。
    • Criteria API支持批量更新/删除。
    • 可以使用FUNCTION调用预定义和用户定义的函数。
    • 可以使用StoredProcedureQuery和@NamedStoredProcedureQuery调用存储过程。

    8.Interceptors

    • 使用InterceptorBinding关联拦截器是现在这个规范而不是CDI的一部分。
    • @AroundConstruct指定了一个拦截器方法来接收目标类构造子被调用时的回调。
    • 通过增加构造子级别的拦截器,方法级的拦截器可以扩展到生命周期的回调。
    • 使用拦截器绑定,优先级范围可以专用于拦截器排序。

    9.Contexts and Dependency Injection

    • 在Java EE中,为使用作用域注解的Bean和EJB自动启用CDI。
    • @Priority注解支持全局排序和启用拦截器、装饰器和Alternative。
    • @Vetoed注解简化了编程式的禁用类。

    10.Bean Validation

    • 验证约束可以应用到任意方法和构造子的参数和返回值。
    • 增加和重新设计了CDI集成点。
    • 当验证级联触发时,可以改变目标组。

    11.Java Transaction

    • 应用程序可以使用@Transactional,在类级别和方法级别以声明方式控制CDI管理的Bean和Java EE规范的托管Bean的事务边界,方法级别的注解会覆盖类级别定义的注解。
    • @TransactionScoped是一个新的CDI作用域,将Bean实例生命周期的作用域定义为当前的JTA事务。

    12.JavaMail

    • @MailSessionDefinition和@MailSessionDefintions定义了使用JNDI注册的MailSession。

    13.Java EE Connector Architecture

    • 提供@AdministeredObjectDefinition、@AdministeredObjectDefintions、@Connector FactoryDefinition和@ConnectorFactoryDefinitions来定义连接器管理的对象和将在JNDI中注册的工厂。

    本文摘自《Java EE 7精粹》

    关于封面:
    A20132915.jpg

    内容简介

    Java EE 7是Java EE最新版本的平台,它为建立Web应用和企业应用提供了简单、易用和全栈式的服务。

    本书提供了Java EE 7平台中关键规范的概述。全书共16个章节,对Java EE 7平台中的每一个概念都给予了详细的解释,并通过一系列简单的代码示例来帮助读者更好地了解这个平台。作者Arun是Java EE团队的核心成员,也是Oracle的Java布道者,对Java EE 7平台的启动有重要贡献,是对Java EE 最有发言权的技术专家。

    本书适合那些对Java有一些基本了解或者对Java EE 平台感兴趣的读者,阅读本书无需具备Java EE平台早期版本的知识。另外,对于了解设计模式的读者而言,通过本书描述的大部分技术还能实现实际应用的构建。

    点此购买:http://item.jd.com/11644150.html

    作者简介
      Arun Gupta,是甲骨文的Java布道者。作为Java EE团队的创始成员之一,他的工作是创建和培育Java EE、GlassFish和WebLogic社区。他带领一个跨职能的团队通过战略、规划和内容、营销活动和方案的执行推动Java EE 7平台的全球启动。他非常热衷于开发和接洽合作伙伴、客户、JUG、Java champions以及其他传播于世界各地的Java的精华。Arun拥有丰富的演讲经验,他在30多个国家演讲过数的话题。作为一名作者,Arun有一个多产的博客:blogs.oracle.com/arungupta,同时他是一位跑步爱好者和环球旅行者,请在twitter关注他:@arungupta,他很平易近人。

    译者简介
    韩陆,北京航空航天大学软件工程硕士。热爱编程,热衷于开源社区的技术交流和分享,将持续学习作为一种生活习惯。曾混迹于用友总部、新浪、Avaya和Technicolor从事研发工作。现就职于阿里巴巴总部,从事敏捷和自动化测试的研发工作。《JSF和Richfaces使用指南》、《Java Restful Web Services使用指南》作者。

    相关文章

      网友评论

        本文标题:Java EE 7有什么新功能

        本文链接:https://www.haomeiwen.com/subject/dvwpxttx.html