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进行React式编程,改进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,face flow,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/338938.shtml

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

相关文章

C语言中quot;##quot;的独特用法

市面上有很多比较火的编程语言,比如Python、 JAVA、 Go等,你可能觉得C语言很古老、很落后。如果你有这种想法,那可能你只是一个初学的菜鸟。可能绝大部分 C 程序员都不知道"##"隐藏用法,下面就来给大家讲讲。一、##的“…

html a标签去掉下划线_如何用HTML基本元素制作表格

第2天【HTML基本元素】主要内容标题标签段落标签强制换行水平线图片超链接文本格式化标签列表表格学习目标一、标题标题&#xff08;Heading&#xff09;是通过 <h1> - <h6> 标签进行定义的。<h1> 定义最大的标题。 <h6> 定义最小的标题。标题很重要请…

mysql忽略数据类型_MYSQL 常用数据类型

数字列类型数字列类型用于储存各种数字数据&#xff0c;如价格、年龄或者数量。数字列类型主要分为两种&#xff1a;整数型和浮点型。所有的数字列类型都允许有两个选项&#xff1a;UNSIGNED和ZEROFILL。选择UNSIGNED的列不允许有负数&#xff0c;选择了ZEROFILL的列会为数值添…

C语言中几个容易踩的“坑”!

今天给大家分享几个C语言中的坑。一、带参数的宏展开顺序#include #define f(a,b) a##b #define g(a) #a #define h(a) g(a)int main(void) {printf("%s\n",h(f(1,2)));printf("%s\n",g(f(1,2)));return 0; }运行结果:12f(1,2)浅析&#xff1a;本题中的#运…

java 拼图_我最喜欢的Java拼图2 + 1 = 4

java 拼图这是我当前最喜欢的Java难题。 您如何获取代码来执行此操作&#xff1f; Integer b 2; Integer c 1;System.out.println("bc : " (bc) ); // output: bc : 4 !!Sytem.out.println&#xff08;&#xff09;没有技巧&#xff0c;也就是说&#xff0c;您将…

dockerfile cd目录_使用Werf和现有的Dockerfiles改善你的CI/CD体验

迟到总比不到好。该故事讲关于我们因不支持使用常规的Dockerfile来构建镜像导致我们差点犯了一个重大错误。Werf[1]是一个GitOps工具&#xff0c;可以很好地集成到任何CI/CD系统中&#xff0c;并提供完整的应用程序生命周期管理&#xff0c;允许你&#xff1a;构建和推送镜像部…

alxc tool 报错数组超出了界限_代码审计之报错信息泄露与字符串截断

机器在语言编码转换的时候&#xff0c;经常会出现各种各样的异常&#xff0c;这些神奇的字符串就有可能组合成一堆乱码出来&#xff0c;也有可能直接把程序搞崩溃掉&#xff0c;不过总有那么一些字符&#xff0c;可以帮助我们在利用漏洞的时候变得更简单一些&#xff0c;下面我…

C语言,去你的策略模式!

前言 这里先插一点题外话&#xff0c;在C语言中&#xff0c;实现封装、继承、隐藏、多态等等特性&#xff0c;是完全没有问题的。但是在使用过程中&#xff0c;必定是不如自带这些特性的语言方便好用的&#xff0c;比如C \java等。一旦要通过C语言来实现各种设计模式&#xff0…

eager_EAGER的获取是代码的味道

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

什么时候会是用treeset?_flex:1 到底代表什么?

今天在做项目的时候遇到一个关于布局的问题, 就是 flex: 1; 我一直以为 flex: 1; 代表的是 flex: aoto; 后来发现结果并不是这样, 所以写一篇博客来讲解一下 flex: 1; 代表什么代码第一版<div class"container"><div class"div">我是一个div&l…

纠缠不清的C语言位域(位段)详解

位域是什么&#xff1f;有些数据在存储时并不需要占用一个完整的字节&#xff0c;只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态&#xff0c;用 0 和 1 表示足以&#xff0c;也就是用一个二进位。正是基于这种考虑&#xff0c;C语言又提供了一种叫做位域的…

matlab画累计直方图_科学网—matlab 绘制直方图——常用命令 - 范凯波的博文

直方图上显示数值close all ,x rand(100,1);%获得直方图的数据[n,y] hist(x);maxN max(n);%设置显示x,y长度限制axis([0 1.2 0 maxN2])%根据直方图的数据绘制出图形bar(y,n);for i 1:length(y)%直方图上面数据对不齐&#xff0c;利用水平和垂直对齐 &#xff0c;可以参考se…

玩转java并发工具_玩Java并发

玩转java并发工具最近&#xff0c;我需要将一些文件&#xff08;每个文件都有JSON格式的对象列表&#xff08;数组&#xff09;&#xff09;转换为每个文件都具有相同数据&#xff08;对象&#xff09;的分隔行的文件。 这是一次性的任务&#xff0c;很简单。 我使用Java nio的…

django debug=false后静态文件丢失_python框架Django实战商城项目之工程搭建

项目说明 该电商项目类似于京东商城&#xff0c;主要模块有验证、用户、第三方登录、首页广告、商品、购物车、订单、支付以及后台管理系统。 项目开发模式采用前后端不分离的模式&#xff0c;为了提高搜索引擎排名&#xff0c;页面整体刷新采用jinja2模板引擎实现&#xff0c;…

mysql解压缩 1067_windows安装mysql8.0.0解压版附出现1067错误解决方法

1、自己到mysql官网下载mysql-8.0.0-dmr-winx64.zip解压缩安装包2、下载页面地址&#xff1a;https://dev.mysql.com/downloads/mysql/3、解压缩到任意目录(我自己是D:\DevTools\mysql-8.0.0)4、配置环境变量添加path路径为你的mysql8.0.0路径下面的bin目录(我的目录是D:\DevTo…

基于C语言的函数指针应用-消息命令处理框架

简述大家都知道&#xff0c;在C语音中指针的地位很重要&#xff0c;各种指针&#xff0c;功能很强大&#xff01;但是用不好&#xff0c;指针也比较容易出问题。这里介绍的是函数指针的一种应用方法&#xff0c;即使用函数指针来实现消息命令的注册与回调处理。代码测试的处理函…

框架中建立浮动框架_建立代理,而不是框架

框架中建立浮动框架自从引入Java注释以来&#xff0c;它已成为大型应用程序框架API的组成部分。 此类API的很好示例是Spring或Hibernate的示例&#xff0c;其中添加了几行注释代码可实现非常复杂的程序逻辑。 尽管人们可以争论这些特定API的缺点&#xff0c;但大多数开发人员都…

easyexcel 动态列_easyexcel动态表头列导出SequenceDiagram 阅读源码事半功倍

EasyExcel简介Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&#xff0c;但POI还是有一些缺陷&#xff0c;比如07版Excel解压缩以及解压后存储都是…

python3进阶_Python3 进阶教程 2020全新版

REVENGE_7771天前如果不创建class类的话&#xff0c;直接使用dog.name是会报错的&#xff0c;因为一般数据类型不接受这种调用方式0赞 0采集潘某人永不屈服2天前class Student()定义的时候&#xff0c;需要在括号内写明继承的类Person在__init__()方法&#xff0c;需要调用sup…

C语言中的输入输出

在C语言中提供了许多内置的输入输出函数。标准文件的定义在C语言中会把所有设备当文件来处理。为了访问键盘和屏幕&#xff0c;以下三个文件会在程序执行时而打开。标准文件文件指针设备标准输入stdin键盘标准输出stdout屏幕标准错误stderr屏幕C 语言中的输入/输出通常使用内置…