【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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:355267
用户头像

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

关注

评论

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

将提交记录生成二维码,扫码即可查看填写内容

草料二维码

二维码 草料二维码

机器学习:智能时代的核心引擎

不在线第一只蜗牛

人工智能 机器学习

ETL中RESTful API 组件的用法

RestCloud

ETL 数据集成 RESTful API

[自研开源] 数据集成之分批传输 v0.7

LIEN

开源 数据集成 业务融合 API对接 mydata

容器镜像加速指南:探索 Kubernetes 缓存最佳实践

不在线第一只蜗牛

Kubernetes 容器化 集群

C#代码混淆器 ipaguard 的优势与使用

雪奈椰子

AI+软件工程:10倍提效!用ChatGPT编写系统功能文档

快乐非自愿限量之名

AI 软件开发

论低代码如何适配小程序开发

快乐非自愿限量之名

小程序 低代码

YYDS,只用几条命令轻松搭建自己的项目管理平台jira

霍格沃兹测试开发学社

2024南京国际智能机器人展览会

AIOTE智博会

机器人展 智能机器人展

拓展AI边界:去中心化人工智能的应用场景和主要项目盘点

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

云主机有什么用?看看它的多功能用途

一只扑棱蛾子

云主机

深入解析以太坊Dencun升级:提升网络性能与安全的关键举措

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Python 和 Go 的基础了解

Liam

Python Go 编程 程序员 后端

StarRocks 助力小红书离线数仓提效,提升百倍回刷性能!

StarRocks

数据库 大数据 数仓 湖仓一体

一文熟悉PolarDB-PG 分区表核心特性

阿里云数据库开源

数据库 阿里云 polarDB PolarDB-PG

低代码与供应链行业的融合:开启数字化新时代

EquatorCoco

软件开发 低代码 供应链 项目开发

lilishop开源版本window一键启动

小黄鱼

Spring Boot 开源商城 bat启动 lilishop

Python中的datetime模块:轻松拿捏时间操作

霍格沃兹测试开发学社

网心科技入选2023中国ToB行业影响力价值榜

网心科技

深圳站回顾|隐语最新功能、隐私计算硬核技术、数据要素实践干货全记录(附演讲视频)

隐语SecretFlow

Selenium报错元素不可交互,该如何解决?

霍格沃兹测试开发学社

一口气搞懂分库分表 12 种分片算法,大厂都在用

程序员小富

Java 分库分表 spring-boot

就是这么简单,Selenium StaleElementReferenceException 异常分析与解决

霍格沃兹测试开发学社

火山引擎边缘云出席2024亚太内容分发大会,助推游戏体验全面升级

火山引擎边缘云

CDN 游戏 CDN加速 CDN带宽

Netflix微服务经验教训

俞凡

微服务 最佳实践 netflix 大厂实践

商城小程序项目实现监控的可观测性最佳实践

观测云

小程序

英特尔携手开发者,以全新OpenVINO™ 2024.0版本引领AI加速技术革命

E科讯

时序数据库IoTDB:功能详解与行业应用

Apache IoTDB

数据要素×工业制造:光纤通信企业携手奇点云,攻克“国产替代”迁移难关

奇点云

奇点云 数据要素 工业制造 光纤通信

使用 Amazon Bedrock + Claude 3 打造个性化智能编程助手

亚马逊云科技 (Amazon Web Services)

人工智能

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