JavaOne 日记–第1天

发布于:2021-02-17 00:00:10

0

211

0

JavaOne 日记 Java Java EE

与近几年一样,JavaOne的各种活动分布在邻近的几家酒店。尽管这些被认为是非常接近的,但经过10公里的快速步行后,你可能会遇到一个不利的选择会议的一天。因此,我有两个选择:要么运动我的跑鞋,让我的苹果手表上的健康应用程序快乐;要么把自己完全投入到一个话题,从而也投入到一家酒店。我选择了后者,在这篇日记中,除了少数例外,“企业Java”的主题已经提上了议事日程。

Java EE 8–现状

幸运的是,javaee8的规范负责人lindademichiel今天概述了javaee的当前状态。对于那些还不知道的人来说:javaee中的新api并不是在规范中偶然制定的,而是Java企业社区两阶段调查的直接结果。

 

最受关注的是JSON绑定,这并不奇怪,紧随其后的是安全简化和JCache。对基于动作的MVC框架的渴望使它最终进入了前5名!为了使相关的规范组在讨论中不失去焦点,javaee中即将出现的创新和变化基于三个主要问题。我们已经知道Java EE 7中的前两个:

  • HTML 5 Web层增强

  • 易于开发和CDI协调

  • 用于在云中运行的基础设施

但这些不同规格的产品目前到底处于什么样的状态?要点:Linda DeMichiel多次强调(PowerPoint)显示的代码示例应理解为想法和讨论的基础,最终版本很有可能在2017年发布-是的,你读对了,不幸的是-由于仍有许多变化。

Web层增强功能

在JSON-B的规范中,工作需要强烈地面向现有的解决方案。例如,Moxy、Jackson、Gson、Genson和Xstream都被提到了。在任何情况下,底层JSON绑定提供程序都有可能被交换为更快的机制。正如所料,使用JAX-B的XML等价物,默认映射可以被注释覆盖。根据“一直到数据库”的格言,JAX-RS提供了一种标准化的机制来动态支持“application/json”。

这一点越来越关注JSON,增强功能希望通过显示JSON-p1.1(JSON处理)中提议的更改来缓慢但肯定地远离XML。从本质上讲,对现有API进行了更新,以跟上JSON规范环境的发展。通过引入JSON指针元素,JSON文档可以成为目标并在将来读取。使用JSON补丁(rfc6902的实现)可以在JSON对象上使用replace、add或delete等操作。对于Java8爱好者来说,还有一个计划,即在JSON查询中允许使用Lambda表达式。

javaee8的Web环境中的另一个重要创新是计划对HTML5标准服务器端事件的支持,它由通过mime类型的文本/事件流的服务器到客户端流表示。如果服务器定期向客户机发送数据(例如股票行情器或仪表板),或者在客户机建立了一个连接之后,这种机制总是有意义的。根据DeMichiel的说法,规范组内部对实现方法存在一些争论。

最后,您只能同意在JAX-RS上作为附件的实现是有用的,因为它可以用很少的努力来实现。在服务器端,必须只对资源方法进行注释,以便它生成适当的mime类型。然而,在客户端,一个特殊的事件监听器确保可以处理传入的消息。

我们能在网络环境中期待新的东西吗?啊,是的,基于动作的MVC框架mvc1.0!正如JAXenter先前报告的那样,第二个早期草稿现在可用,所有人都可以检查。希望这个草案没有被加强以代替对facelet或jsp的支持。

易于开发

除了Web环境中的许多新特性之外,对于开发人员来说,自然也应该有一些简化。得益于JavaEE安全API 1.0,CDI拦截器的授权将在未来成为可能。jms2.1应该带来改进的jmsmdb支持(消息驱动bean),以便更轻松地处理异步消息。幸运的是,还可能有一个基于CDI的变体,用于处理规范中包含的异步消息。然而,德米切尔认为,这在目前还是纯粹的推测。

简单性还带来了一些删减,因此消除了一些可选的“历史”api。这方面的候选对象是CORBA和ejb2.x,以及RemoteView客户机视图。在会议期间进行的一次现场民调显示,100%的与会者赞成这一步骤,这甚至让德米切尔感到惊讶。我猜剩下的少数EJB2.x支持者在他们的编程时间里有很多事情要做,以至于他们不能参与JavaOne。

为(云)未来做好准备了吗?

尽管javaee中的许多新特性和变化让人欣喜若狂,但javaee能否像以前一样继续在企业计算中扮演如此重要的角色这一合理的问题必须提出。javaeesecurity1.0中经过大量修改的管理API和一些新特性(例如,密码别名、用户管理、角色映射、REST身份验证)至少试图保持纯粹的技术视角。但到最后,这就足够了吗?WebSphereFoundation首席架构师IanRobinson在其题为“EnterpriseJava仍然相关吗”的会议中解决了这个问题?

根据罗宾逊的说法,通常的平台边界正在慢慢被吸收(或者说很快?)在虚拟化容器中移动到云。理论上,在这样的容器中运行javaee应用程序是没有异议的。但是,如果你曾经质疑过使用容器的动机,那么很快就会明白,选择一个容器意味着它会完全按照你的意愿去做——不多也不少。听起来不错,对吧?因此,目标必须是能够捆绑所需的javaee组件,以便可以使用已建立的技术,而不会产生不必要的开销。这已经通过springboot项目成功地完成了一段时间,javaee已经在wildflysarm和dropwizard中列出了第一批候选人,他们正朝着正确的方向前进。

罗宾逊认为,javaee无疑正处于一个十字路口。“javaee在云端派对上相当强大和相关,但年轻客人的声音更大。所以让我们自己制造更多的噪音!“他的结案陈词听起来很像是一场战争的呐喊,我只能补充我的声音!