写点什么

Spring 3.0 发布:基于 Java5,添加了新的表达式语言和对 REST 的支持

  • 2009-12-21
  • 本文字数:1762 字

    阅读完需:约 6 分钟

Spring 3.0 于 12 月 16 日发布啦。InfoQ 采访了 Spring Framework 项目的技术负责人 Juergen Hoeller ,向他了解这次发布的一些情况以及其对 Spring portfolio 带来的改变。

Hoeller 介绍了 Spring 3.0 中的主要新特性:

  • 基于 Java5 - 核心 API 使用了 Java 5 的特性,诸如泛型、注解等等,因此现在 Spring 3.0 要求 Java 5 或更高版本
  • Spring 表达式语言(SpEL) - 和 JSF 中的统一表达式语言(Unified EL)类似,构造复杂表达式 非常简单
  • 支持基于注解的组件 - Spring JavaConfig 的一些功能已经被移植到核心框架中了,比如 @Configuration、@Bean 和 @DependsOn。
  • 使用约束注解的声明式模型校验 - 增加对 JSR 303 的支持,我们现在可以使用诸如 @NotNull 和 @Max(23) 这样的注解给 bean 增加校验规则。
  • Spring MVC 全面支持 REST - 增加了对构建 RESTful 服务器和客户端的支持。
  • 支持 Java EE 6 - 支持许多 Java EE 6 特性,如 JPA 2.0 和 JSF 2.0,而且可以运行在 Tomcat 及 J2EE 1.4 这样的非 EE 6 容器中。
  • 支持 JSR 330 - 现在支持由 JSR 330 引入的 javax.inject 注解。
  • 基于注解进行格式化 - 可以使用注解对 bean 的属性自动进行格式化和转换,比如 @DateFimeFormat(iso=ISO.DATE) 及 @NumberFormat(style=Style.CURRENCY)。

Spring 还提供了完整的修改记录参考文档

Hoeller 在谈到 SpEL 时给出了更为详细地说明:

SpEL 是一种功能强大的表达式语言,语法遵循统一表达式语言(Unified EL),它与 JSF 中使用的表达式非常类似。我们特别为 SpEL 开发了自己的表达式解析器以提供特定的功能:这些特定功能被用在 bean 定义配置及 Spring Integration 这样的项目上。在 Spring 核心中很多地方都用到了"#{…}"表达式,比如 XML bean 定义和 @Value 注解、以名字动态引用其它 bean 并以简明形式间接引用它们的属性。

例如,下面这段 XML(来自 Spring 3.0 文档)使用 SpEL 来配置 Spring bean 的属性,属性值来自 JVM 系统参数:

复制代码
<bean class="mycompany.RewardsTestDatabase">
<property name="databaseName"
value="<b>#{systemProperties.databaseName}</b>"/>
<property name="keyGenerator"
value="<b>#{strategyBean.databaseKeyGenerator}</b>"/>
</bean>

Hoeller 还着重介绍了 Spring 3.0 中对 REST 的支持:

我们面对的挑战是在 Spring MVC 的世界中加入对 REST 的支持,把这种强大的新功能交到 MVC 用户的手中。我们决定从 MVC 底层来为路径变量抽取、内容协商等等提供支持,这种方法是正确的——仔细考虑 Spring MVC 的能力并把它提升到另一个层次,同时又不破坏其基础架构。结果很不错,而且已有的 Spring MVC 应用采用 REST 特性也变得简单了。 我们的主要焦点集中于遵循 REST 协定的 web 用户接口上。下一步,在 Spring MVC 基础上实现基于 REST 的 WEB 服务也是一件很有意思的事,特别是结合 OXM(Object/XML Mapping)模块(如今已成为 Spring 核心的一部分)。最后,我们要提供一个 Spring 风格的 RestTemplate 类,为客户端与面向 REST 后台服务器的程序交互提供支持。

对于那些工作在 Spring 2.5 之上,以及那些将其代码更新为基于注解风格的开发者,这次升级过程都将是非常平滑的——在升级到 3.0 之后,新特性的使用是可选的,而且不需要对基础架构进行任何改变。对那些正在使用更老版本如控制器类层级形式的开发者,这些东西 3.0 仍然会支持,但是现在不赞成使用(deprecated)。要使用 3.0 的新特性,必须转向基于注解的 @MVC 风格。对 Spring 2.0 的用户,99% 的代码可以继续工作,但是更老的组件如对 Apache Commons Attributes、WebLogic 8.1 和 WebSphere5.1 的支持被移除了。

当问到 Spring Framework 的未来计划时,Hoeller 提到开发将持续受到 Spring portfolio 中其他项目的严重影响,比如 Spring Integration Spring Web Flow SpringSource dm Server 以及 Spring Roo 等等。3.1 要发布的功能特性就将受到 Spring Integration 2.0 和 Spring Web Flow 3.0 很大影响,比如计划中的一流会话管理、作用域的扩展支持,以及基于注解组件模型的改良等等。在已计划的 3.1 于 2010 年中期发布之后,紧接着就是 3.2 版,但是目前 3.2 的具体计划还没有最终确定下来。

查看英文原文: Spring 3.0: Java 5 Required, Adds New Expression Language and REST Support

2009-12-21 06:165014

评论

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

《震惊!这家交易所开发平台竟能实现如此高效交易》

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 公链开发代币开发

HarmonyOS Development Practice: Network Kit 构建智慧教育网络平台

bianchengyishu

HarmonyOS NEXT

鸿蒙开发实战之Remote Communication Kit实现教育题库同步

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Pen Kit 构建智能笔写教学系统

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Driver Development Kit 构建教育设备驱动生态

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Input Kit 构建教育场景智能输入系统

bianchengyishu

HarmonyOS NEXT

效果&成本双突破!快手提出端到端生成式推荐系统OneRec!

快手技术

推荐算法 大模型 快手

HarmonyOS开发笔记:Device Certificate Kit实现教育设备安全认证

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Device Security Kit 构建教育终端安全防护体系

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Function Flow Runtime Kit 构建教育智能业务流程

bianchengyishu

HarmonyOS NEXT

鸿蒙开发日记之Sensor Service Kit实现智能护眼提醒

bianchengyishu

HarmonyOS NEXT

HarmonyOS开发实战之Status Bar Extension Kit实现学习状态实时提醒

bianchengyishu

HarmonyOS NEXT

鸿蒙开发实战之Telephony Kit实现教育应用的智能通话管理

bianchengyishu

HarmonyOS NEXT

Trino 可观测性最佳实践

观测云

trino

鸿蒙开发实战:Data Protection Kit 构建教育数据全生命周期防护体系

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Distributed Service Kit 构建智慧教育协同系统

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Network Boost Kit 构建教育网络加速系统

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: NearLink Kit 构建教育近场交互系统

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Performance Analysis Kit 构建教育应用性能监测体系

bianchengyishu

HarmonyOS NEXT

HarmonyOS开发笔记之Service Collaboration Kit实现智能学习小组功能

bianchengyishu

HarmonyOS NEXT

一文读懂:当下最热门的 DApp 开发模式全解析

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 公链开发代币开发

一文揭秘:交易所开发如何在激烈竞争中脱颖而出

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 代币开发 交易所开发公链开发

HarmonyOS Development Practice: Enterprise Data Guard Kit 构建教育数据安全防护体系

bianchengyishu

HarmonyOS NEXT

DApp 开发大揭秘:智能合约的神奇魔力

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 公链开发代币开发

从“烟囱式监控”到观测云平台:2025 亚马逊云科技峰会专访

观测云

亚马逊云科技中国峰会

HarmonyOS Development Practice: Online Authentication Kit 构建教育可信身份体系

bianchengyishu

HarmonyOS NEXT

HarmonyOS Development Practice: Multimodal Awareness Kit 构建教育场景智能感知系统

bianchengyishu

HarmonyOS NEXT

鸿蒙开发实战之Test Kit保障教育应用质量

bianchengyishu

HarmonyOS NEXT

鸿蒙开发实战:Crypto Architecture Kit 构建教育数据安全体系

bianchengyishu

HarmonyOS NEXT

Kyutai 开源 STT 模型,支持流式传输;AI 虚拟角色桌面设备 Dipal D1:会动、会说话、会回应你丨日报

声网

HarmonyOS Development Practice: MDM Kit 构建校园设备统一管理平台

bianchengyishu

HarmonyOS NEXT

Spring 3.0发布:基于Java5,添加了新的表达式语言和对REST的支持_Java_Ryan Slobojan_InfoQ精选文章