报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

Spring 框架 5.0 版本发布相关的技术访谈

  • 2017-10-30
  • 本文字数:1793 字

    阅读完需:约 6 分钟

Spring 框架 5.0 版本在 2017 年 9 月 28 日发布,在特性中包含了一个新的反应式 Web 框架。 Pivotal 的产品市场主管 Pieter Humphrey 将这个版本描述为该项目自 2004 年诞生以来最重要的发布版本。

在这个发布版本中,Spring 5.0 的整个代码库都是基于 Java 8 源码级别的。Spring 5.0 完全兼容 JDK 9 进行开发和部署。

Spring 5.0 的反应式 Web 框架名为 Spring WebFlux ,它构建在 Reactor 3.1 项目之上,同时支持注解和函数式风格编程。InfoQ 与 Pivotal 的高级工程师 Rossen Stoyanchev 进行了交流,讨论了他对 Spring 5.0 强调反应式编程的看法。

Stoyanchev:通过 Java 8 的 CompletableFuture,Java 开发人员已经熟悉了采用连续(continuation)风格的 API 来组合异步逻辑的好处。在最近几年间,我们看到出现了一些库用于组合异步逻辑,比如 RxJava 和 Reactor,它们提供了与 CompletableFuture 类似的收益,但它们处理的是流式值并且支持回压(backpressure,在 Reactive Streams 规范中所定义的)。

Spring 框架 5.0 版本借助一个 Web 框架,能够让应用拥抱这种异步编程模型,这个 Web 框架本身的核心协议是完全异步的,内部采用了非阻塞的 I/O,在异步运行时环境上支持 Reactive Streams 回压功能,这些运行时环境包括 Netty、Undertow 以及像 Tomcat 和 Jetty 这样的 Servlet 容器(基于 Servlet 3.1 非阻塞 I/O)。这种方式所带来的最重要的好处就是能够结合事件轮询风格的执行模型来组合异步逻辑,这样就能以更少的硬件资源处理更多的并发请求,在高负载场景下,它的作用会更加明显。

Stoyanchev 说 Spring 5.0 引入的变化对希望升级的已有应用不会带来影响,因为新功能是与 Spring MVC 并存的。

在大多数的应用中,要么导入 spring-webmvc(Servlet 技术栈),要么导入 spring-webflux(Reactive 技术栈),已有的应用可以很容易地升级到 Spring 5 版本的 spring-webmvc。

按照 Stoyanchev 的说法,Spring 5.0 努力在 Spring MVC 和 Spring WebFlux 之间提供一致的体验,开发人员可以在两者之间做出选择。这两个 Web 框架通过灵活的控制器方法签名,支持相同的注解编程模型。除此之外,Spring WebFlux 还提供了可选的、函数式的 Web 端点编程模型,将其与 Java 8 lambdas 和内置的 Kotlin 扩展协同使用是很有吸引力的。

在 Spring 框架 5.0 中,我们实际上对 Spring MVC 进行了扩展,使其支持反应式的返回值,这样的话,就允许 Spring MVC 控制器使用反应式 WebClient 和其他的反应式库,比如反应式数据 repositories,在这个过程中,依然能够在任意的 Servlet 3.1+ 容器中基于 Servlet 的 Web 端点技术进行操作。

InfoQ 还咨询了 Stoyanchev,如果希望采用 Spring 5.0 的反应式编程模型的话,开发人员有什么需要预先注意的地方。

开发人员应该了解从编写命令式风格的逻辑转移到使用声明式、异步的 API 时,有一个很大的学习曲线。另外,异步和非阻塞的代码也更难调试,因为调用栈不再是唯一的。如果你刚刚开始接触的话,建议从小范围开始,留出足够的时间去学习和适应。要慎重选择最适合,并且能够从非阻塞并发中获益最多的应用。在决定开始之前,要衡量和证明性能方面所能带来的收益。另外需要记住的是,有些地方是很容易上手的,比如在已有的 Spring MVC 应用中使用反应式 WebClient。

InfoQ 还与 Spring 框架项目的领导者 Juergen Hoeller 进行了交流,了解了他对 Spring 5.0 的想法。

Hoeller:我们以 Java 8+ 作为基线,这样能够为整个框架带来重要的 API 改善和众多的内部优化。同时,Spring 框架 5.0 能够完全支持 JDK 9,它能够同时支持 classpath 以及模块路径。

核心容器为 Java 8 和 Kotlin 提供了函数式 bean 注册的机制。

Hoeller 补充说,Spring 5.0 还为常见的 Spring API 提供了 Kotlin 扩展,比如 JdbcTemplate 和 RestTemplate,并且还支持对 Kotlin 数据类(data class)进行数据绑定。

Hoeller 总结了 Spring 5.0 其他重要的特性:

Spring 框架 5.0 在运行时支持 Java EE 8 API 级别,比如支持将 Servlet 4.0 的 PushBuilder 注入到 Spring MVC 处理器方法中、用于 JSON 转换的标准 JSON Binding API(作为 Jackson 和 Gson 的替代方案)、JPA 2.2 持久化技术以及注解驱动校验的 Bean Validation 2.0。综上所述,我们的基线依然是 Java EE 7+ 级别,依然支持所有的 Servlet 3.1、JPA 2.1 提供商等等。

查看英文原文 Spring Framework 5.0 Released

2017-10-30 19:005360

评论

发布
暂无评论
发现更多内容

干掉Session?这个跨域认证解决方案真的优雅!

沉默王二

Spring Boot

Android技术分享| 【Android 自定义View】多人视频通话控件

anyRTC开发者

android 音视频 移动开发 视频通话 自定义view

大数据培训_文科生的你到底适不适合学习编程

@零度

大数据开发 培训学习

C++学习网站

C语言与CPP编程

c++

cdr2022无需序列号和密钥 直接安装即可激活

茶色酒

cdr2022

CorelDRAW2022最新版图形套件更新功能

茶色酒

CorelDRAW 2022

徐徐春风迎3月,月度更文活动准点发车啦!

InfoQ写作社区官方

3月程序媛福利 3月月更 热门活动

跨团队协作:提高团队生产力的 7 种策略

小炮

团队管理 知识管理 团队协作 办公效率

用好这28个工具,开发效率爆涨|云效工程师指北

阿里云云效

云计算 阿里云 云原生 研发工具 研发

“碳中和”背后的创新科技!

青云技术社区

云计算 碳中和

如何恢复MAC苹果电脑系统数据文件?

茶色酒

EasyRecovery15

集合阿里云、达摩院、平头哥相关技术的HaaS,官宣出书啦!

博文视点Broadview

22.04 LTS爆料现场 - UKUI 3.1带你开启“寻光”之旅

优麒麟

Linux 开源 优麒麟 UKUI

java培训应该怎么学习才能找合适的工作

@零度

JAVA开发 培训学习

云原生时代,政企混合云场景IT监控和诊断的难点和应对之道

华为云开发者联盟

微服务架构 混合云 华为云Stack IT监控 SDN网络

星环 KunDB 2.2 发布,为高并发事务与查询混合的业务系统提供一个新选择

星环科技

数据库

Java中停止线程的3种方式

CRMEB

vivo全球商城全球化演进之路—多语言解决方案

vivo互联网技术

架构 后端 服务器

数据可视化大屏 - 大屏云极简使用手册

shulinwu

可视化 数据可视化 大屏可视化 智慧大屏可视化 大屏

面试突击26:如何正确停止线程?

王磊

面试

Elastic 与 AWS 和解、英伟达 660亿 收购 ARM 失败|2月开源月报

腾源会

开源 腾源会

云原生多云应用利器 -- Karmada 控制器

Daocloud 道客

Kubernetes 云原生 多云管理 Karmada

基于STM32+ESP8266+华为云设计的智能家居控制系统

DS小龙哥

物联网 智能硬件 stm32 3月日更

2021年中国收藏玩具行业市场洞察分析

易观分析

盲盒 潮玩

融云 IM 在 Electron 平台上的设计实践

融云 RongCloud

Python 中 base64 编码与解码

AlwaysBeta

Python 程序员 编程语言 base64

Android包体积优化上篇- 资源混淆优化

百度Geek说

百度 前端 后端 优化 包体积

web前端培训_哪些学习方法对零基础比较有用

@零度

前端开发 培训学习

联通实时计算平台演进与实践

Apache Flink

大数据 flink 开源 编程 实时计算

NFT盲盒商城游戏系统开发技术

薇電13242772558

NFT

数据系统提供商极道科技加入龙蜥社区

OpenAnolis小助手

Linux 开源 数据系统

Spring框架5.0版本发布相关的技术访谈_Java_Amit K Gupta_InfoQ精选文章