我有点“晚点”,可以这么说……就Java EE 7的 “博客”而言。 自2013年6月发布以来,已经差不多10个月了 ,但是它仍然相对较新。 就我个人而言,仅仅是因为它的易用性和所购买的功能范围之广,我对此感到很兴奋。但是,无论我是否兴奋,这真的很重要吗? 大声笑…。 不仅仅是我,整个Java社区(嗯,差不多!)都依靠Java EE 7将我们引入下一代丰富的企业软件开发中。 在玩了一段时间之后,我认为现在是时候开始写它了。
Java EE 7(JSR 342)本身就是一个“伞形”规范,其中包含33个单独的规范。 我将简要介绍其中一些规范,特别关注“新”规范以及已经历“重大”检修和变更的规范。
这篇文章不是对每个规范的“深入研究” 。 我将“ 介绍 ” Java EE 7中引入的全新规范。
让我们开始 。 。 。 。 。 。 。 。 。
Java EE 7:关键驱动程序和USP
开发人员生产力
- 自Java EE 5以来,带注释的POJO被证明是易于开发范例的基石,它继续统治着市场并进一步渗透Java EE
- 上下文和依赖注入(CDI)作为“魔术胶水”的声誉已提高到一个新的水平– Java EE 7中它现在已成为“默认”,其目标是在整个EE平台上提高凝聚力
- JMS 2.0 (JSR 343)已被完全“ 改进 ”。 API的“新版本”(称为“ 简化API ”)更加简洁,易于使用,并且将确保开发人员必须处理“数量大大减少 ”的“ 样板 ”代码
HTML5焦点
- JAX-RS 2.0 (JSR 339)– Java EE 7中的RESFTful API得到了进一步丰富,包括添加了全新的“客户端” API,异步功能, Servlet 过滤器和拦截器
- WebSocket的Java API (JSR 356)为开发人员提供了“易于使用”和强大的“高级”抽象,以供开发人员编写低延迟,实时且功能丰富的WebSocket驱动的应用程序
- JSON支持 – JSON处理的Java API(JSR 353)最终实现了“标准化”的JSON处理。 不再需要处理JSON的“第三方”库。
满足企业需求
- 现在,通过并发实用程序 (JSR 236)API,可以以受控/托管方式在Java EE 7中触发自己的线程(在此之前禁止)
- Java平台的批处理应用程序 (JSR 352)– Java EE 7中的全新规范,提供了编写高效“ 批处理 ”应用程序的标准方法
Java EE 7中引入的“ 全新 ”规范是
- Java WebSocket API 1.0(JSR 356)
- JSON处理1.0的Java API(JSR 353)
- 并发实用工具1.0(JSR 236)
- Java平台1.0的批处理应用程序(JSR 352)
Java WebSocket API 1.0(JSR 356)
- 基于ISocket标准( RFC 6455 )的WebSocket协议构建
- WebSocket允许通过单个TCP连接进行全双工 , 双向通信的客户端和服务器
- 建立连接后, 客户端可以随时向服务器发送消息
- 服务器可以向其连接的客户端/对等方发送消息,而无需它们的任何“显式请求”,即完全独立于客户端
- Java EE 7中的WebSocket API通过允许支持将简单的POJO转换为服务器或客户端Web套接字端点的直观注释 ,支持易于开发。 该框架还支持“程序化”端点,该端点基于
- 借助注释能够拦截WebSocket生命周期事件
- 支持文本和二进制消息以及运行状况检查(乒乓)消息
JSON处理的Java API(JSR 353)
- 提供一种“ 标准 ”方式来解析和生成 JSON格式的数据
- 开发商没有 “必要”使用第三方 JSON库(杰克逊等),然而,他们可以选择“插件”他们选择的实现如果需要的话
- 以与JAXP API类似的方式建模,并支持Streaming API和DOM API
- 顾名思义, Streaming API可帮助以流方式处理/生成JSON(类似于JAXP的StAX API)。 这是一个低级API,适用于从JSON数据流获得的“ 事件 ”
- DOM API会为JSON数据创建内存Java对象模型 (类似于XML DOM API)。 这是一个易于使用的高级API
- 对“ 绑定 ” API(类似于JAXB的JSON-B )的支持正在进行中,应在Java EE 8中“标准化”
Java平台的批处理应用程序(JSR 352)
- 适用于执行不需要人工干预的“长期运行”的批量 作业 ,并且可以根据要求进行计划,例如ETL作业,日间工作等
- 为面向“批处理”的应用程序提供完整的编程 模型
- 定义作业规范语言 ,该语言是在XML中定义“作业”的基础。 该作业XML捕获整个批处理过程。
- 支持两种不同的“处理”机制。
- 块样式处理涉及“读取”输入的“大量”数据,对其进行“处理”,最后“写入”作为该过程的最后一步。 所有这些操作都是通过特定的接口抽象的,即ItemReader,ItemProcessor和ItemWriter
- 此API还支持“ 批处理 ”样式处理模型,该模型定义了“任务”,该任务一旦完成,就标志着工作的结束
Java EE的并发实用程序(JSR 236)
- Java EE的早期版本禁止使用Java SE并发API来启动应用程序特定的线程。
- 新规范提供了一种从应用程序内部支持自定义“并发”构造的标准方法。
- 利用/扩展Java SE并发实用程序,并提供这些API的“ 托管 ”版本
- 现在,开发人员可以使用javax.enterprise.concurrent.ManagedThreadFactory以“ 托管 ”和“受控”的方式创建 线程 。
- 可以利用javax.enterprise.concurrent.ManagedExecutorService以“ 异步 ”方式触发任务
- 此API还允许开发人员通过javax.enterprise.concurrent.ManagedScheduledExecutorService 安排定期任务
就“新”规范而言。 这是修改后的规格列表
- Java Message Service API 2.0(十年来首次重大改进)
- JAX-RS 2.0(RESTFul API)
- 企业JavaBeans 3.2
- Java持久性API 2.1
- 上下文和依赖注入1.1
- JavaServer Faces 2.2
- Java Servlet 3,1
- 拦截器1.2
- Bean验证1.1
这些规范的更改/增强将在以后的文章中介绍 。 我还将在以后的文章中介绍“ 个人 ”规范。
翻译自: https://www.javacodegeeks.com/2014/03/java-ee-7-whats-new.html