近日,Oracle完成了Java Specification Request(JSR)342——Java EE 7的JSR。该JSR着重强调了新近涌现的Web技术、云计算,并继续简化用户的使用,包括彻底重写了JMS API。此外,JPA也引起了人们的关注,Oracle计划重新振兴长久以来处于停滞状态的JCACHE JSR。
为了使Java EE更加适合于云的要求,首先应该考虑的是多租(相同的程序可以运行在各种不同的环境下,从本地应用服务器到私有云和公共云)、应用版本化以及支持非关系(NRDBMS)的数据存储。
Jerome Dochez在2011 London QCon的演讲(这是pdf)中提到,对于资源与状态的管理、应用间更好的隔离性以及常用的管理与监控接口还拥有更为迫切的需求。他进一步指出,包的改进可以让应用多个版本之间的共存成为可能。
然而,迁移到云上需要一整套完整的模块化解决方案,但在Java SE 7环境下这却是行不通的。由于Java EE 7与Java SE 7之间的耦合性,看起来要等到Java EE 8时才能实现完整的云版本的Java EE,而Java EE 8大概要到2013年10月才会发布。该JSR会:
提供充分的模块化与版本化功能以涵盖常见的开发者使用场景,比如使用平台中已经包含的API的新版本。这项工作需要与即将发布的Java SE JSR通力协作才可以,这样就能跨越SE与EE平台提供一致性。
于HTML5和涌现的其他Web技术,JSR表示:
我们希望Java EE 7平台能够为最近Web领域的发展提供最棒的支持,包括HTML5和Web Sockets。
Dochez还提到,我们应该有一个标准的JSON API和基于NIO.2的Web容器。
JAX-RS 2.0 JSR草案(339)提到了一个客户端API、MVC支持、异步支持(受到Atmosphere的启发)、超媒体支持以及与@Inject/CDI更好的集成。
JSR 341会将新版本(3.0)的表达式语言(EL)引入到Java EE中。考虑到用户所要求的一些新特性,该JSR试图在Java EE容器外简化EL的使用。另一个JSR(344)包含了一个提案:将JavaServer Faces升级到2.2版。该JSR计划对HTML5表单、新的Heading与Sectioning内容模型和Metadata内容模型提供支持,这又一次强调了HTML5的重要性。JSF 2.2很有可能独立于Java EE 7发布,该JSR的目标平台是Java EE 6。最后在Web领域中,Servlet规范会有一些小的改进,这是由JSR 340管理的。
从易用性的角度考虑,JMS API被彻底改写了(其JSR是343)。同时还计划对CDI进行一些小改进(比如说增加一个API来配置injector),对受管的Bean模型进行一些改善,去除了Managed Beans、EJB、Servlets、JSF、CDI和JAX-RS之间的不一致性。Pete Muir撰写了一篇博文,谈到了关于CDI的计划,感兴趣的读者还可以下载其JSR提案(PDF文档)。
此外,对JPA 2.1的增强之处也是非常多的,从对“fetch groups”和“fetch plans”的支持到对持久环境同步的更多控制。Java Persistence Query Language与criteria API也有不少改进,包括对存储过程、ON条件下的外连接、向下类型转换以及JPQL与criteria查询之间的映射支持。
最后,Emmanuel Bernard考虑到了Bean Validation 1.1,他撰写了一篇博文,提出了一些改进的建议与反馈。提案包括与其他规范(JAX-RS、JAXB、JPA与CDI)更好的集成以及方法级别的验证。
该JSR通过了本月14日最初的审阅投票阶段(这是结果)。虽然计划于明年底发布,但Dochez在其演讲中还是认为“很不错了”。 
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐