【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

Spring Framework 4.0 相关计划公布 --- 包括对于 Java SE 8 和 Groovy2 的支持

  • 2013-03-04
  • 本文字数:3376 字

    阅读完需:约 11 分钟

VMware 公司旗下的 SpringSource 团队近日宣布了 Spring Framework 4.0 的相关计划,这是 Spring 框架的下一个升级版本, 新的特性包括了对 Java SE 8,Groovy 2,Java EE 7 部分功能和 WebSockets 的支持。在介绍 Spring Framework 3.2 版本的 webinar 结尾,曾更详细地讨论过这些计划。

计划的新特性和更新的全部清单如下:

  • 基于 Spring 应用对 Java SE 8 的良好支持:

    • 支持 Java SE 8 的新的语言特性,比如 lambda 表达式;API 方面比如 JSR-310 Date 和 Time。
  • 支持使用 Groovy 2 配置和实现 Spring 风格应用:

    • 基于 Groovy 的 bean 定义;Groovy 可以作为整个应用的可选语言。
  • 支持 Java EE 7 中的关键技术:

    • 包括 JMS 2.0,JPA 2.1,Bean Validation 1.1,Servlet 3.1 和 JCache
  • 支持 WebSocket 风格的应用程序架构:

    • 支持符合 JSR-356 的运行时和相关技术
  • 应用程序内部的细粒度事件处理和消息传送:

    • 基于现有的应用程序事件和消息监听器机制构建
  • 裁剪功能和依赖升级:

    • 删除已弃用的功能,将最低依赖提升到 Java 6+ 等

InfoQ 采访了 Spring 框架联合创始人 Juergen Hoeller,以了解计划的更多详情。

InfoQ: 能否给我们介绍下,在 Spring 中, Lambda 表达式会在哪些方面带来帮助;我想 JMS 中的回调编程模型是否就是其中的一种应用场景?

“实际上,所有的 Spring 模板类(如 JmsTemplate,JdbcTemplate,TransactionTemplate)多年来一直使用基于回调的编程风格,这正好是 lambda 表达式发挥所长之处,伴随着那些已经建立的回调接口,更多使用 Java 8 lambda 表达式的原生功能接口可供使用。我们也希望在异步编程模型中能采用强大的 lambda 表达式,如 fork-join 任务和异步 web 请求的处理,针对这些我们在 Spring 3.x 版本中已经完成了大量的基础工作。我们的目标是当用户结合 Spring4 的 API 使用 Java 8 的语言特性时,能得到非常平滑和自然的体验。”

InfoQ: JMS 2.0 将会给 Spring 带来多大的影响?

“我们很高兴看到在 JMS 1.1 发布超过 10 年后 JMS 规范发布了修订版本。然而,新规范的内容除了紧跟时代的步伐外,并没有太多的改变。我们正打算在 JmsTemplate 中支持新的发送选项(延迟传递,异步发送),并允许使用新的 JMSContext Client API 作为替代 Spring 的 JmsTemplate 的可选方案。所以 JMS 2.0 本身不会给架构带来多大的影响;它将从根本上促使我们重新审视 JMS 在各种基于 Spring 架构的应用中的作用。因此,任何在 Spring 中对 JMS 的进一步支持将继续兼容 JMS 1.1。”

InfoQ: 与 JMS 较为相关的这类 WebSocket 应用将通过 JSR-356 得到支持。对此你们的计划是怎么样的?

“我们研究 WebSocket 在业界的使用已有一段时间了,对即将出台的 JSR-356 规范及其相关的技术都十分感兴趣,包括针对主流 Servlet 容器和在最小化服务器配置的嵌入式 HTTP 端点中的部署。我们的目标是以虔诚的态度为 Spring 编程模型提供一个简单直接的扩展,从而暴露(exposing )Websocket 风格的端点(endpoints),理想状态下,将和我们对基于 Spring 应用中消息端点的支持计划同步。我们将保持注重实效,我们很想在 2013 年的基础架构中,能提供让 Spring 使用者感到实用的面向 WebSocket 的功能。”

InfoQ: 计划中明确提到的新的 Java Date 和 Time 的 API。你能否举例说明它们将在哪里得到支持?

“Spring Framework 3.0 中引入了更多使用 JodaTime 类库来对日期进行绑定和渲染的支持。JSR-310 本质上是 JodaTime 的标准化版本,即使它们在设计上有少许不同。我们将优先支持 JSR-310 中的值类型,这可以通过 Spring 的 @DateTimeFormat 和相关的转化功能得到实现,并建议在应用领域模型的核心中使用它们。”

InfoQ: 我留意到你们在 Groovy 上花了不少功夫。你有没有发现 Groovy 2.0 在大规模开发中已成为了 Java 以外的另一种可选项,它在性能上是否足够优秀,能举例说明么?

“这是一个关键的问题,我们也正在探索这个问题的答案。我们在 Spring 4.0 核心框架中对 Groovy 提供了更为强大的支持,从而看到了更多的可能性:基于 Groovy 的 bean 定义 (又称 Grails BeanBuilder),下一代的脚本支持,以及使用 Groovy 2 中的静态编译模式作为基于 Spring 的应用的主要实现语言。当使用静态编译模式时,Groovy 的性能是相当好的,而且今后会变得更好。”

InfoQ: 相比于 Java,你觉得 Groovy 中的哪些特性更适合开发 Spring 应用?

“恩,Groovy 在很多方面跟 Java 是很接近的,并且与 Java 具有天然的互操作性。对于 Spring 来说,最重要的是 Groovy 对 Java 的注解具有强有力的支持,并且支持使用闭包作为 Java API 的方法参数。对于 Java 的使用者来说,Groovy 是十分容易掌握的。除此之外,Groovy 显然有很多很好的小众语言的特性,它们可以让你选择性地或甚至全部采用,但同时又不放弃传统 Java 语言的语义特性。大家可以通过实际查看 Groovy 2.1 的最新特性去体会下。”

InfoQ: 你是否是更认同 Groovy?

“不,绝对不是。我们正全力拥抱 Java ,特别是以 Java 8 的语言风格——但与此同时,我们也对其他语言持开放态度。我们不仅关注 Groovy,也关注 Scala 和其他语言。只不过,对于核心的 Spring 用户来说,Groovy 自有其优势(sweet spot),我们一定会在 Java 8 中喜欢上 Groovy。个人认为,我们对多种语言的研究正在同时进行,这是十分好的事情,而 Spring 终将会从其间受益良多。”

InfoQ: 对于 JCache 的支持,你们的计划是怎么样的?我知道早在 Spring 3.2 中已经对其提供了支持,但在 Jave EE 7 中,你们对 JCache 的改变有什么预期?

“一旦 JCache 的规范最终发布,我们将确定支持所有 JCache 针对 CacheManager 设置而提供选项,包括事务和分布式变体(variants)。我们也打算支持 JCache 中的缓存注解,作为除 Spring 原有缓存注解以外的可选方案,并适当的在 Spring Framework 中做到开箱即用。同时,我们将重新投入到对 EHCache 的原生支持,确保其跟 JCache 得到同一级别的支持,并对最近发布的 EHCache 2.5 以上的新特性进行同步。Spring Framework 4 是一个让我们同步常用第三方类库新特性以及对运行时要求更新版本的好机会。”

InfoQ: 既然你提到最低的依赖环境是 Java EE 6,那么是否意味着,企业如果使用旧版本的应用服务器,如只支持 Jave EE 5 的 WebLogic 10,WebSphere 7,将不能使用这些新的特性?

“Spring Framework 4.0 计划的一个重要部分,是根据最新的 Java SE 和 Jave EE 去定制框架,所以我们的基线将会是 Jave SE 6 及 Jave EE 6 以上。然而,我们也尽量通过使用 Jave EE 6 特性包,比如 Websphere 7 的 IBM JPA 2.0 特性包,或者 WebLogic 10.3.4 的 JPA 2.0 特性包,以对这些 Jave EE 5 的中间件服务器做出妥协,这样就能在它们上面很好地运行 Spring Framework 4.0。从技术上说,这意味着尽管最近 Spring 在 web 方面的支持已经朝 Servlet 3.0 方向强势迈进,但我们将在运行时继续对 Servlet 2.5 保持兼容,。无论如何,Spring 将依然保持着原来的使命,那就是将各种新的编程模型的特性带到已有的运行平台中去,在 Spring 4.0 中依然是这样的。”

InfoQ: 去年看上去,至少是外界看来,对 SpringSource 来说是个多事之秋,比如 Rod 的离开和 VMWare 决定将 SpringSource 分离出来成立一家独立的公司。在业界好像有一种暗示,认为 Spring 框架某种程度上“已经结束”,你怎样回应这种议论?

“Spring 的开源团队依然稳定,熟悉的面孔都依旧各司其职。像我本人,实际上正在庆祝自己作为 Spring Framework 开源项目负责人的 10 周年。 Spring Framework 4.0 正通过建立新一代的框架来庆祝自己的 10 周岁生日,并为未来打造好了一个全新的基础。尽管核心编程模型的改变已不再具有颠覆性,但我们根本没有结束,类似于 Java EE 7 相比 Jave EE 6 那样。在 Spring 4.0 GA 发布后,还将会有其他一系列基于 Spring Framework 4.0 框架的其他项目陆续发布。”

Spring Framework 4.0 的第一个里程碑版本预期将在今年 4 月末发布。而 GA 版本则计划于今年年底发布。

原文链接: Plans for Spring Framework 4.0 Announced - Includes Support for Java SE 8 and Groovy 2


感谢赵震一对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-03-04 20:355263
用户头像

发布了 81 篇内容, 共 22.8 次阅读, 收获喜欢 3 次。

关注

评论

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

后端除了增删改查还有什么?

秃头小帅oi

Adobe InDesign 2024 for mac v19.0 专业排版工具

晴雯哥

AI机器学习实战:构建智能系统的关键步骤

不在线第一只蜗牛

人工智能 机器学习 AI

Linux 爱好者线下沙龙:成都场圆满结束 & 下一场西子湖畔相见 | LLUG·第五站

OpenAnolis小助手

操作系统 杭州 龙蜥社区 LLUG Linux中国

ACDSee Photo Studio 10 for Mac(专业的图像处理软件)v10.0.0激活版

影影绰绰一往直前

Databend 源码阅读: Storage 概况和 Read Partitions

Databend

情感语音识别的研究方法与实践

来自四九城儿

AnyGo for Mac(在iPhone / iPad上轻松模拟GPS位置)v6.8.1激活版

影影绰绰一往直前

Acrobat Pro DC 2023 for mac(专业PDF编辑软件)v2023.006.20320中文激活版

mac

Acrobat Pro DC 2023 苹果mac Windows软件 PDF编辑和管理软件

开发体育直播平台的商业创新:多元化收入模式引领行业转型

软件开发-梦幻运营部

使用CURL获取速卖通详情的API接口

Noah

iTubeGo YouTube Downloader for Mac(YouTube 下载器)v7.2.0激活版

影影绰绰一往直前

流程图是什么?一文弄懂流程图 - 定义 | 流程图符号 | 流程图如何制作

彭宏豪95

流程图 在线白板 画图工具 效率软件 流程图绘制

李开复再度回应争议;10 月中国游戏厂商及应用出海收入 30 强出炉丨 RTE 开发者日报 Vol.86

声网

Adobe Camera Raw for Mac(Raw格式图像ps插件) v16.0.0中文激活版

影影绰绰一往直前

【AI编程助手】Devchat解析:深入了解、快速配置与实际应用

快乐非自愿限量之名

人工智能 DevChat AI编程

物联专栏丨物联网技术的挑战与趋势

inBuilder低代码平台

物联网

好用且强大——JNPF永远的神

高端章鱼哥

软件开发 低代码

MatrixOne 实战系列回顾 | 建模与多租户

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

PDF Squeezer for Mac(强大的PDF文件压缩工具)

晴雯哥

SaaS与PaaS平台的区别

树上有只程序猿

低代码 PaaS SaaS

Java中tranisent关键字到底是干嘛用的?

郑在暴富中

Java 关键字 transient

ClickHouse联合创始人、前Google副总裁Yury到访杭州玖章算术公司,双方建立生态合作

NineData

Clickhouse 数据复制 合作伙伴 SQL开发 NineData

情感语音识别技术的挑战与未来发展

来自四九城儿

MATIC WORLD智能合约DAPP质押项目系统开发

l8l259l3365

为什么现在的低代码平台大多被抵制?

代码生成器研究

编程 程序员 低代码 代码

一些有趣的迹象:“前端已死”难道要成真了?

伤感汤姆布利柏

程序员 Vue 前端

SecureFX for Mac(ftp文件传输工具)附注册码 v9.4.2永久激活版

mac

苹果mac Windows软件 SecureFX 文件传输客户端

item_get_pro-获得淘宝商品详情高级版api接口

技术冰糖葫芦

API 文档

软件开发提效工具——低代码(Low-Code)

互联网工科生

低代码 数字化

.NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth

快乐非自愿限量之名

.net 开发 第三方登录

Spring Framework 4.0相关计划公布---包括对于Java SE 8 和Groovy2的支持_语言 & 开发_Charles Humble_InfoQ精选文章