Java EE 8怎么了? (第2部分)

JavaEE8正积极推进,涵盖CDI2.0、JAX-RS2.1、Servlet4.0等规范更新,重点提升异步处理、HTTP/2支持及与JavaSE8的对齐。同时,JSON-P1.1、JMS2.1和JavaEE管理2.0等也在修订中。

Java EE 8的工作仍处于初期阶段,并有望在来年跟上发展步伐,届时我们将看到专家组的完成,围绕用例/功能的更多讨论,大量JIRA和各种规范的草案版本(本会很有趣!)。

第1部分中 ,我们研究了Java EE 8中包含的新规范 。在本文中,让我们看一下为进一步增强而排队的现有规范( 非常重要 !)

更新规格清单

  • CDI 2.0(JSR 365)
  • JAX-RS 2.1(JSR 370)
  • Servlet 4.0(JSR 369)
  • JSON-P 1.1(JSR 374)
  • JMS 2.1(JSR 368)
  • Java EE管理2.0(JSR 373)
  • JSF 2.3(JSR 372)

让我们一一看一下……。

CDI 2.0(JSR 365)

自从Java EE 6诞生以来,CDI已经成为Java EE平台不可或缺的一部分。 CDI的巨大成功导致社区需求,以进一步加强其与平台中不同规范的集成。 查看Java EE 8社区调查结果的第5-7页。

目标

  • Java SE 8对齐(当然!)–利用Java 8好东西,例如Lambda,流,可重复注释,默认方法等
  • Java SE的支持–标准化Java SE的依赖注入API。 各个CDI实现(Weld等)确实支持Java SE,但需要使用特定于供应商的方式来使用它们。 希望可以解决该问题,我们将拥有一个用于在Java SE和EE上使用CDI的标准API!
  • CDI模块化 –将CDI拆分为易于管理的模块,从维护以及采用/实施的角度使事情变得更容易
  • 增强的事件 –一项主要增强功能是引入了异步事件 ,该事件到目前为止还没有出现(CDI 1.2)。
  • 其他功能 – AOP(拦截器和装饰器)和SPI相关的增强功能

现在还很早,到目前为止还没有定论。 事情正在发展,并将继续如此。 可以在官方CDI规范页面上访问所有最新更新。

这是我几天前发布的博客 ,其中包含有关CDI 2.0的更多详细信息。

快速链接

JAX-RS 2.1(JSR 370)

有了即将发布的目标和功能,令我惊讶的是,该修订版被称为2.1 –可能是3.0, 但这只是我的一般意见

EE 8计划

  • CDI紧密集成
  • 服务器发送事件(SSE)的支持 –社区要求的标准包括服务器发送事件的标准API,这在Java EE 8社区调查结果的第2页中很明显。 如果您还没有听说过SSE或不了解SSE,可以将其看作是一条中间路径,其中包括b / w HTTP(基于请求响应)和WebSockets(全双工和双向)。

注意 :* Jersey提供对SSE的支持,但它不是JAX-RS标准的一部分,因此不可移植。 您可以在这里阅读更多内容 *

  • JSON-B集成– JSON-B是我在上一篇文章中提到的另一个Java EE 8候选人。 当前,JAX-RS为JAXB提供了无缝的现成支持。 JSON-B也计划这样做。 您所需要做的就是使用JSON-B注释定义模型类,并将其余的留给JAX-RS运行时!
  • 安全的明确支持–确保RESTful服务的安全一直是一个话题。 尽管仍可以应用标准的Java EE Web(servlet)和业务(EJB)层安全性,但是JAX-RS不支持用于声明性或程序性安全性的标准方法。 但是这里的目标将是标准化JAX-RS特定的安全功能,或者利用Java EE Security 1.0(JSR 375) (另一个Java EE 8候选者)
  • 为JAX-RS提供程序启用NIO (非阻塞I / O)。 这是对自JAX-RS 2.0以来已经存在的异步(服务器和客户端)功能的补充。
  • 管道中的其他功能包括支持通过JAX-RS进行React式编程,改进JAX-RS 2.0中引入的Hypermedia API(HATEOAS)以及支持

快速链接

Servlet 4.0(JSR 369)

Servlet是Java EE中最古老,最重要的规范之一。 在它之上还建立了其他几个规范(JAX-RS,WebSockets等)。 Servlet 4.0将专用于HTTP / 2。 其主要目标是使Servlet API具有HTTP / 2功能。

目标

  • 请求/响应多路复用
  • 流优先级
  • 服务器推送
  • 从HTTP 1.1升级–使用API​​中的现有升级功能(从HTTP到Web套接字)以启用到HTTP / 2的升级

快速链接

JSON-P 1.1(JSR 374)

JSON-P 1.0在Java EE 7中引入,为开发人员提供了处理JSON的标准API,而无需打包第三方实现。 这帮助Java EE 7真正符合HTML5标准(其关键主题之一)。 JSON-P 1.1更像是具有修复和改进功能的维护版本。

Java EE 8计划了什么?

  • Java SE 8保持一致 –尽管目标显而易见,但仍然很有趣。 可以增强API以使用Java 8收集器,并提供JSON解析器事件的Stream表示。
  • 结合了对JSON规范本身更新的支持-JSON指针和JSON补丁
  • 支持修改(以前是不可变的)JSON对象(可能通过类似Builder的实现)

快速链接

JMS 2.1(JSR 368)

JMS 2.0(JSR 343)带来了巨大的改进,特别是在简化API itslef方面。 结果是易用性和开发人员生产率– Java EE 7的中心主题之一。JMS2.1计划引入几个重要的更改/添加以及一些常规的改进–让我们来看看

  • Java SE 8兼容–在我看来,这并不奇怪(可重复的批注,lambda等)
  • 异步消息传递方法的变化 (寻找替代想法)–计划是将MDB的想法扩展到一般的任何CDI bean,并消除必须实现MessageListener接口的约束。 任何CDI bean都可以采取异步方式接收消息。
  • 其他改进,例如在Java EE事务中使用时的JMS提供程序行为,JMS提供程序与Java EE应用服务器的可移植性,在MDB抛出异常的情况下重新传递消息

牢记CDI 2.0也将支持异步事件,有趣的是,看看这两个规范如何处理通常处理异步事件/消息处理的功能。 此外,还需要查看该特定功能是否最终会使MDB过时。

快速链接

Java EE管理2.0(JSR 373)

简而言之,该JSR旨在成为J2EE管理规范(JSR 77)的现代版本 。 REST是现代化的代名词,Java EE Management JSR计划采用REST作为事实上的接口,用于与托管对象进行通信并提供诸如

  • 将托管对象上的CRUD操作公开为RESTful接口
  • 利用SSE分发事件以响应被管理对象状态的变化
  • 使用REST接口(通过相同的接口进行部署和管理)来启用Java EE应用程序的部署-与同样处理Java EE应用程序部署的JSR 88相比,是完全不同的

截至目前,从工作的角度来看,事情有点安静。 但是我非常确定,我们将在新的一年中采取很多行动!

快速链接

JSF 2.3(JSR 372)

看起来JSF 2.3将由社区的投入和反馈来驱动。 查看Java EE 8社区调查结果的第3、4、5页,以了解有关MVC以及JSF的模板引擎的反馈。

目标

  • 利用Java SE 8以及Java EE 8平台本身的其他功能
  • 增强了对JSF Ajax API的支持 ,以允许对CDI托管(控制器)bean的直接Ajax调用(这听起来很有希望!),这将使在客户端和Java EE后端之间交换JSON消息变得简单。
  • 结合了JSF用户社区急需的功能– EL性能改进,多字段验证等
  • 支持MVC 1.0 – JSF为MVC的“ V”(视图)部分提供了很多功能(Facelets,face flow,JSF CDI范围等)。 看看对MVC 1.0的JSF进行哪些更改/添加会很有趣

快速链接

就Java EE 8优点而言,这一切吗? 当然不是。 其他规范也需要进行修订和改进–它们很快就会成为众人关注的焦点。 这是其他规格的快速概述以及预期的结果

  • EJB 3.2 (维护版本)
  • JPA 2.1 (维护版本–支持Java 8 DateTime API和重复注释)
  • WebSocket 1.0 (维护版本)
  • JTA和Java Mail规范也可能需要维护版本

有关Java EE 8专家组电子邮件讨论的更多信息

Java EE 8刚刚开始热身。 我很确定这次旅程会令人兴奋! 敬请关注…。

干杯!

翻译自: https://www.javacodegeeks.com/2014/12/whats-up-with-java-ee-8-part-2.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值