近日,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系统。