如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

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:165091

评论

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

为什么你的体育App总被卸载?可能不是你的错

ggscoreLynne

7个关键步骤让您充分利用YashanDB生态系统

数据库砖家

7个因素影响YashanDB数据库的性能优化

数据库砖家

8个建议提升YashanDB中的数据质量

数据库砖家

NocoBase 本周更新汇总:优化及缺陷修复

NocoBase

开源 低代码 无代码 版本更新

展览馆LED屏幕:让展示更有“光”

Dylan

视觉 LED LED display 展览 LED屏幕

智源“透明心脏”:全自动3D心肌瘢痕重建,让三维诊断走进中国日常临床

智源研究院

人工智能 AI医疗

哈尔滨等保测评:筑牢数字时代安全防线

等保测评

谷歌推出全新语音搜索技术 S2R:跳过语音转文字,直接理解语音意图;代体 AI 推出端侧语音输入法丨日报

声网

哈尔滨等保测评:常见问题与应对之道

等保测评

7个关键技巧提升YashanDB数据库的性能

数据库砖家

7个实用技巧提高YashanDB数据库的安全性

数据库砖家

Amazon Generative AI Use Cases:“开箱即用的企业级生成式AI应用平台”

亚马逊云科技 (Amazon Web Services)

OPPO智慧服务吹起AI之风,移动开发拨云见日

脑极体

AI

7个核心功能让你更好地使用YashanDB数据库

数据库砖家

8个优化YashanDB资源使用效率的技巧

数据库砖家

8个影响YashanDB数据库数据查询速度的因素

数据库砖家

8个优化YashanDB查询性能的实用技巧

数据库砖家

大数据-126 - Flink一文搞懂有状态计算:State Backend 工作原理与性能差异详解 核心原理与作用

武子康

Java 大数据 flink spark 分布式

哈尔滨等保测评:测评后的持续安全管理

等保测评

7个方法优化YashanDB数据库的存储性能

数据库砖家

从0到1掌握京东API:商品详情获取技巧与避坑指南

Datafox(数据狐)

京东商品详情接口 京东商品数据采集 京东商品详情API 京东数据采集 京东商品数据分析

8个步骤实现YashanDB数据库的数据备份

数据库砖家

8个让YashanDB更易于使用的最佳实践

数据库砖家

7个关键点了解YashanDB的最佳实施策略

数据库砖家

8个实用的提示,帮助您优化 YashanDB 性能

数据库砖家

8个YashanDB数据库性能提升的小技巧

数据库砖家

vivo HDFS EC 大规模落地实践

vivo互联网技术

大数据 hdfs EC 大数据计算与存储

英特尔助力阿里云推出多款云实例和存储方案

科技热闻

穿越钱塘江:一条高铁隧道背后的技术挑战

DevOps和数字孪生

轨道交通

8个实用技巧提升YashanDB的安全性

数据库砖家

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