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

标签: spring framework 相关 | 发表时间:2013-03-05 10:35 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

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中文站投稿或者参与内容翻译工作,请邮件至 [email protected]。也欢迎大家通过新浪微博( @InfoQ)或者腾讯微博( @InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

您可能也会喜欢

相关 [spring framework 相关] 推荐:

Spring Framework 3.2 GA 发布

- - 开源中国社区最新新闻
Spring Framework 3.2 GA 版本正式发布. Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架. 与 RC2 版本比较,该版本主要改进包括:. * 升级 Spring 框架构建到 AspectJ 1.7.1, JUnit 4.11, Groovy 1.8.8, JRuby 1.6.5, Joda-Time 2.1.

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

- - InfoQ cn
VMware公司旗下的SpringSource团队近日宣布了Spring Framework 4.0的相关计划,这是Spring框架的下一个升级版本,新的特性包括了对Java SE 8,Groovy 2,Java EE 7部分功能和WebSockets的支持. 在介绍Spring Framework 3.2版本的.

Spring Framework 4.0 M1 和 3.2.3 发布

- - 开源中国社区最新新闻
Spring 发布了两个新版本,分别是全新 4.0 的首个里程碑版本以及 3.2.3 维护版本. 首个 4.0 里程碑版本主要改进包括:. 广义条件bean定义的机制(@Conditional , @Profile). WebSocket endpoint 模型. 在 Java 8 支持方面包括:.

SpringSource通过Spring for Android 1.0将Spring Framework引入到Android上

- - CSDN博客推荐文章
本文来源于我在InfoQ中文站翻译的文章,原文地址是: http://www.infoq.com/cn/news/2012/07/spring-for-android-1.0 近日, SpringSource发布了Spring for Android 1.0. Spring for Android是Spring Framework的扩展,有助于简化原生Android应用的开发.

Spring Framework 3.2 GA版发布,Spring MVC焕然一新

- - InfoQ cn
近日,VMware的SpringSource团队 发布了Spring Framework 3.2 GA版,距3.1版的发布时间刚好是一年. 此次发布重点介绍了 Spring MVC Web框架,该框架最近在我们 JVM Web框架研究中名列前茅,其新特性如下所示:. 基于Servlet 3.0的异步MVC处理,Spring MVC处理器方法可以返回Callables与DeferredResults.

Spring中Aware相关接口

- - 企业架构 - ITeye博客
加载Spring配置文件时,如果Spring配置文件中所定义的Bean类实现了ApplicationContextAware 接口,那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的. 方法,获得ApplicationContext对象. 前提必须在Spring配置文件中指定该类.

C++ 插件框架 Pluma Framework

- bin - 开源中国社区最新软件
Pluma 是一个开源的C++插件管理框架,以助于在应用程序中动态载入DLL而无需在意内部实现,它是轻量级、简化设计的. 主要特性有: A 高品质:     面向对象     跨平台;     易于使用;     容易集成; B 富功能:     动态载入插件(DLL);     使用工厂模式(Factory Pattern);     插件版本控制;     使用宏进行插件通信.

iOS中framework的联调

- - CSDN博客推荐文章
时光如梭,一晃又过去很长时间了,好久没有写博客记录一些东西了,正好这次对接腾讯视频的SDK,遇到了一个比较好的问题,记录下来留给大家看. 对接过SDK的朋友应该知道,对接过程中SDK出现一些bug是经常的事儿,但这时候,我没有SDK的源代码,无法debug SDK中的东西. 对方没有我们的主工程源代码,所以也无法直接debug.

無痛安裝 NodeJS 和 Node Framework Express

- Hming - 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY
直接到官網下載 Stable 的版本吧,目前是 node-v0.4.10.tar.gz,也可以先看看 API Document. 安裝 Ububtu 相關套件. 下面會使用最原始的編譯方式,所以必須安裝 g++ 套件,否則下 ./configure 的時候,會吐出來沒有安裝過的套件. 兩種方法:1.用 apt-get install nodejs 2.

HTML5 Canvas开发框架:CasualJS Framework

- Jimmy - ITeye论坛最新讨论
CasualJS Framework是根据ActionScript3?.0的架构开发的一套适用于HTML5 Canvas的面向对象的开发框架. 虽然Canvas提供了强大的绘图功能,但满足不了高级开发的需要. 利用CasualJS的显示对象架构及渲染机制,你可以轻松的在Canvas中操控各种位图、图形、影片剪辑等显示对象.