近日,VMware 的 SpringSource 团队发布了Spring Framework 3.2 GA 版,距3.1 版的发布时间刚好是一年。此次发布重点介绍了 Spring MVC Web 框架,该框架最近在我们 JVM Web 框架研究中名列前茅,其新特性如下所示:
- 基于 Servlet 3.0 的异步 MVC 处理,Spring MVC 处理器方法可以返回 Callables 与 DeferredResults。
- 提供了可以从请求中解析请求媒体类型的 ContentNegotiationStrategy。其实现可以根据文件扩展、查询参数、“Accept”头或是固定的内容类型进行。此前,相应的选项只存在于 ContentNegotiatingViewResolver 中。
- 提供了一个新的 @MatrixVariable 注解,可以从请求 URI 中提取出矩阵变量(路径分隔中的名值对)。
测试也进行了诸多改进,加入了此前独立的 Spring MVC Test 项目,并且支持在 TestContext 框架中加载 WebApplicationContexts。有不少博文与指南( 1 、 2 、 3 )都对 Spring MVC 项目进行了详尽的介绍。
借助于此次更新,Spring 现在允许将 @Autowired 与 @Value 用作元注解,这样开发者就可以搭配特定的修饰符来构建自定义的注入注解了。你还可以为 @Configuration 类构建自定义的 @Bean 定义注解,比如说搭配上特定的修饰符 @Lazy、@Primary 等。
此外,SpringSource 还对框架中不少地方的并发数据结构进行了调整,分别将 CGLIB 与 ASM(他们现在都已经成为 Spring 的内部依赖)的版本更新到了 3.0 与 4.0,并且添加了对 AspectJ 1.7 的支持。
最后,Spring 为 JCache 提供了一个早期的 CacheManager 适配器,根据 JCache 0.5 预览版构建而成。完整的 JCache 支持将会在明年实现,届时 Java EE 7 将会发布。
关于未来的规划,Spring 项目领导 Juergen Hoeller 是这样说的:
下一代的 Spring Framework 将会重点关注 Java SE 8 支持(包括语言与 API),还会对 Java EE 7 的若干规范提供支持。我们还会将 Spring 的 Web 支持带到一个新的层次,这将由异步的 HTTP I/O 处理与 WebSockets 所驱动,并且还会改进对其他语言如 Groovy 2 的支持。
文档中的 New Features and Enhancements in Spring Framework 3.2 一节完整列出了新版本的增强。可以从项目的社区下载页面获得 Spring Framework 3.2 的二进制构建,从 GitHub 下载基于 Apache 2 许可的源代码,通过新的基于 Gradle 的构建来构建项目,它取代了之前的 Ant+Ivy 系统。
查看英文原文: SpringSource Spruce Up Spring MVC as Spring Framework 3.2 Goes GA
评论