BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Juergen Hoeller在SpringOne大会分享最新Spring 5.0发展蓝图:提供对Reactive支持

| 作者 Charles Humble 关注 938 他的粉丝 ,译者 刘嘉洋 关注 0 他的粉丝 发布于 2016年8月15日. 估计阅读时间: 5 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

在拉斯维加斯举行的SpringOne Platform大会的第二日,Pivotal 公司首席工程师兼Spring框架项目负责人Juergen Hoeller给与会者分享了Spring框架的最新发展蓝图。

Spring 4.0 Pivotal框架缩短了迭代期,大约会在每9-10个月进行一次主要功能发布。4.3版本已经在今年七月发布,预计该版本将成为Spring 4.x产品线的最终功能版本。该版本中进行了对于核心依赖注入框架本身的进一步改进,以及对于Spring MVC和网络层的改进。由于系统需求没有变更,因此该版本与JDK 6、7以及8都相互兼容,并可以运行在任何Servlet 2.5+容器上。

Spring框架5.0版本作为第一个里程碑版本已经在今年的七月发布,候选版本预期将在十二月左右发布。GA版本也可能会在2017年第一季度发布。Spring 5.0主要基准有重大更新,将支持JDK 8+、Servlet 3.1+、JMS 2.0+、JPA 2.1+和JUnit 5。

新版本发布的选取框功能将直接支持响应式网络应用程序,它来源于Reactor项目曾经实践的与RxJava的密切合作开发。

响应式编程是非阻塞、事件驱动的应用程序,可处理一小部分的线程,背压这种反馈机制旨在保证生产者不会完全压盖过消费者。9和Spring 5采纳的Reactive Streams规范可以确保不同供应者能在各层以及各库之间相互通信。

在Spring 5中,新的Spring Web Reactive网络框架取代了原有的Spring Web MVC。Spring Web Reactive支持@Controller编程模型,同时提供响应式的网络客户端。它的使用感觉与Spring MVC非常相似,但是添加了搭建在Reactive Streams和Reactor上的非阻塞语义机制。它们将消费请求,写入响应,举个例子来说,使用非阻塞响应式API可以让你使用背压写入HttpSocket。

下面的示例代码摘自一篇博客文章,介绍了Spring 5.0 M1的响应式编程,它示例了一个控制器使用完全的非阻塞和响应式方式从远端服务器获取并传送数据。

@GetMapping("/accounts/{id}/alerts")
public Flux getAccountAlerts(@PathVariable Long id) {

  return this.repository.getAccount(id)
      .flatMap(account ->
          this.webClient
              .perform(get("/alerts/{key}", account.getKey()))
              .extract(bodyStream(Alert.class)));
}

除了响应式支持,Spring核心容器团队还将关注启动性能,尤其是在可能的环境中使用多个线程引导。在演说中,Hoeller解释说:

当引导应用程序的时候,核心容器会起到很大的作用。在某些程度上来说,这已经是非常优化的了,但是我们也仅仅是尽最大努力给出运行时的信息。提供的信息通常只是一个JAR文件,基本上是类路径。

在5.0中我们将深入研究额外的设备使用。如果构建过程中将创建一个专门的索引,让我们可以提前了解特定的注释组件而不必完全扫描类路径?并发的引导呢?在环境中的某些让我们使用额外的引导线程的启动过程能并发运行吗?

5.0版本中的核心容器的Java 8将彻底改革,启用核心框架中的一些APIs,例如开始使用java.util.function类型。对于编程端点管理来说,也给出注释处理方法、lambda表达式的HTTP路由和处理的一些其他选择。框架也将支持客户端和服务器端的HTTP/2。

Spring框架5.0版本预计将与JDK9一起发布,到那时Spring framework 5.0 M1将使用现有的JDK 9快照的至少是类路径模式正确运行。然而第一个里程碑并不支持这个新的“Jigsaw”模块化系统,对它的支持大约将在随后的里程碑版本中发布。

Hoeller在大会上透露,鉴于JDK 9.0发布的进一步推迟,所以在团队认为时机合适的时候就会先发布Spring 5.0,因此Spring框架5.1版本才会完全与JDK 9兼容。Spring 5.1预计会在2017年底发布。

查看英文原文Updated Spring 5.0 Roadmap and Reactive Story Presented at SpringOne

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

小编,Reactive翻译错了! by 孙 奇辉

它们将消费请求,写入响应 -- 你不能把Reactive 和Response都翻译为响应啊。Reactor叫反应堆,核物理早就有的科技名词,显然,Reactive你应该翻译为反应式。Responsive才是响应式。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT