Java EE 8发生了什么? (第2部分)

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的更多详细信息。

快速链接

  • JCP页面
  • 参考实施– JBoss Weld
  • JavaOne 2014上的最新演讲 – CDI 1.2为中心

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进行反应式编程,改进JAX-RS 2.0中引入的Hypermedia API(HATEOAS)以及支持

快速链接

  • JCP官方页面
  • 参考实施– 泽西岛
  • 让我们来谈谈JAX-RS.next!
  • Java One 2014讨论了Jersey的最新功能 – Java One 2014的另一个好东西!

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的升级

快速链接

  • JCP官方页面
  • 在Java One 2014上的演讲– Java实现HTTP 2.0:Servlet 4.0对您意味着什么
  • 另一个来自Java One 2014 的带有Servlet Async IO的狂野之路 -面向Servlet 3.1

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的实现)

快速链接

  • JCP官方页面

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过时。

快速链接

  • JCP官方页面

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相比有很大的不同

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

快速链接

  • JCP官方页面

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,faceflow,JSF CDI范围等)。 看看对MVC 1.0的JSF进行哪些更改/添加会很有趣

快速链接

  • JCP官方页面

就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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

foreach语句的的解析

我这个虾米,今天才知道foreach语句是这样解析的,惭愧啊!幸好我最新在原生态的学习这门编程语言。 //程序中我们这样写foreachforeach (Person item in Persons){Console.WriteLine(item);} //其实如果要使用foreach,需要实现IEnumerator接口&…

滚动条位置判断

//获取滚动条距离顶部位置function getScrollTop() { var scrollTop 0; if (document.documentElement && document.documentElement.scrollTop) { scrollTop document.documentElement.scrollTop; } else if (document.body) { scrollTop d…

如何处理Java注释

Java 8的很酷的新功能之一就是对lambda表达式的支持。 Lambda表达式在很大程度上依赖于FunctionalInterface 注释 。 在本文中,我们将介绍注释以及如何处理它们,以便您可以实现自己的出色功能。 注解 Java 5中添加了注释 。Java语言附带了一些预定义的…

(转)MFC技巧学习五

51. 如何获得其他程序的图标,并显示在View中 [问题提出] 有的时候,如:类资源管理器会遇到获得程序图标并显示的操作,如何实现呢? [解决方法] SDK函数SHGetFileInfo来获得有关文件的很多信息:如大小图标,属性,类型等.  [程序实现] 建立名为My的SDI工程.在OnPaint()函数中…

使用navicat premium将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL

有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle。 很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面。 当然,Navicat的数据库迁移无法做到完美,一些…

书评:Mockito Essentials

Sujoy Acharya的Mockito Essentials副标题( Packt Publishing ,2014年10月)是:“实用指南,可帮助您使用Mockito进行单元测试并开始运行。” Mockito Essentials中的前言和七章涵盖大约190个实质性页面。 前言 在序言中…

Oracle ORA-07445 [evaopn3()+384] 错误 分析

1.OS 和 DB 版本Oracle Version: 11.2.0.2Operation System:HP-UXItanium 11.312.Alert log中信息Tue Oct 16 22:27:31 2012Exception [type: SIGSEGV,Address not mapped to object] [ADDR:0xC00000000] [PC:0x400000000631B880,evaopn3()384] [flags: …

http网站转换成https网站

https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题 一:什么是https SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间&#x…

EAGER的获取是代码的味道

介绍 休眠获取策略确实可以使几乎没有爬网的应用程序和响应速度很快的应用程序有所不同。 在这篇文章中,我将解释为什么您应该选择基于查询的获取而不是全局获取计划。 取得101 Hibernate定义了四种关联检索策略 : 提取策略 描述 加入 原始SELECT语…

基于S2SH的电子商务网站系统性能优化

对于经常逛网页的人来说最受不了的事情就是访问的网页加载太慢,除去网络的原因网站的系统性能对加载的快慢非常重要, 网上有个统计: 每慢500ms Google访问量降低20% 每慢400ms Yahoo 访问量降低5-9% 每慢100ms Amazon销售额降低1% 对于商务网…

玩Java并发

最近,我需要将一些文件(每个文件都有JSON格式的对象列表(数组))转换为每个文件都具有相同数据(对象)的分隔行的文件。 这是一次性的任务,很简单。 我使用Java nio的某些功能进行了读…

ExtJs的Reader

ExtJs的Reader Reader : 主要用于将proxy数据代理读取的数据按照不同的规则进行解析,讲解析好的数据保存到Modle中 结构图 Ext.data.reader.Reader 读取器的根类 Ext.data.reader.Json JSON格式的读取器 Ext.data.reader.Array 扩展JSON的Array读取器 Ext.data.reader.Xml XML格…

sound

sound类在 flash3.0中算是很常见的功能,也是很常用的,下面 简单的运用了 sound类,加载了一首歌,控制 播放 暂停 停止,和控制音量大小; package {import flash.display.MovieClip;import fl.controls.*;imp…

Java Lambdas和低延迟

总览 有关在Java和低延迟中使用Lambda的主要问题是: 它们会产生垃圾吗,您能做些什么吗? 背景 我正在开发一个支持不同有线协议的库。 这样的想法是,您可以描述要写入/读取的数据,并且有线协议确定它是否使用带有JSon或…

HTTP协议/RTSP协议/RTMP协议的区别

RTSP、 RTMP、HTTP的共同点、区别 共同点: 1:RTSP RTMP HTTP都是在应用应用层。 2: 理论上RTSP RTMP HTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP。做视频会议的时候原来用SIP协议,现…

2013搜狗校园招聘笔试题

研习了Linux公社发布的2013搜狗校园招聘笔试题,还是有些收获的。 //第一题:以下程序的输出是___________________ class Base { public:Base(int j):i(j){}virtual ~Base(){}void func1(){i * 10; func2();}int getValue(){return i;} protected:virtual…

Java中的线程本地存储

开发人员中鲜为人知的功能之一是线程本地存储。 这个想法很简单,并且在需要数据的情况下很有用。 如果我们有两个线程,则它们引用相同的全局变量,但我们希望它们具有彼此独立初始化的单独值。 大多数主要的编程语言都有该概念的实现。 例如&…

jsp中@import导入外部样式表与link链入外部样式表的区别

昨天碰到同事问了一个问题,impor导入外部样式与link链入外部样式的优先级是怎样的,为什么实验的结果是按照样式表导入后的位置来决定优先级。今天就这个问题具体总结如下: 先解释一下网页添加css样式的方法,一共有四种&#xff0c…

EBS调试

一、在请求中的调试: 1、用系统函数fnd_file.PUT_LINE(),然后在请求的查看日志中就可以看到 例如: fnd_file.PUT_LINE(fnd_file.log, l_customer_type); 其中l_customer_type就是要查看的变量。 2、先建一张表,然后在程序中执行…

Acision推出“ forgeathon” –第一个WebRTC应用挑战

Acision推出了“ forgeathon”,这是 面向全球开发人员的 首个在线丰富网络通信(WebRTC)应用挑战 加入Forgeathon,让Acision帮助您将应用程序或服务推向全球! 英国雷丁– 2015年1月6 日 :安全,…