VMwareのSpringSourceチームが3.1のちょうど1年後に Spring Framework 3.2のGAバージョンをリリースした。新リリースで際立つのは Spring MVCwebフレームワークで、これは最近、我々のJVM web フレームワーク調査でトップだった。新しいフィーチャには、以下のものが含まれている。
- Servlet 3.0ベースの非同期MVC処理。 Spring MVCハンドラーメソッドは、Callables とDeferredResults を返すことができる。
- 入ってくるリクエストから要求されているメディア・タイプを解決するのに ContentNegotiationStrategyが使えるようになった利用できる実装は、ファイル拡張子、クエリパラメータ、'Accept' ヘッダー、あるいは固定のコンテンツタイプをベースにしている。等価オプションは、以前 ContentNegotiatingViewResolverでしか利用できなかった。
- 新しい @MatrixVariableアノテーションがリクエストURIからマトリックス変数(パスセグメント内の名前-値ペア)を抽出するサポートを追加した。
テスト機能に改善がなされ、以前スタンドアローンだった、Spring MVC Testプロジェクトが含まれ、TestContext フレームワークで WebApplicationContextsをローディングできるようになった。幾つものブログ記事とチュートリアル (one, two, three)があり、もっと詳しく Spring MVCプロジェクトのテストを説明している。
このアップデートにより、Springはメタアノテーションとして、@Autowired と @Valueが使えるようになったので、開発者は固有の限定子と組み合わせてカスタムなインジェクションアノテーションを作ることができる。また例えば固有限定子@Lazy, @Primary などと組み合わせて、@Configurationクラス用にカスタムな@Bean定義アノテーションも作ることができる。
他には、 SpringSourceはフレームワークの多くの部分で並列データ構造を微調整した。更に CGLIB と ASM(これら両方ともSpringとのインラインの依存関係として出てくるようになった)がそれぞれバージョン3.0と4.0になった。。そして AspectJ 1.7のサポートを追加した。
最後にSpringはJCache用のアーリー CacheManagerを提供している。JCache 0.5 プレビュー用に作成した。完全な JCacheサポートは来年の予定で、 Java EE 7がリリースされる時である。
Springの将来計画に関して、プロジェクトリーザーの Juergen Hoeller氏がInfoQに話した。
次世代のSpringフレームワークは、Java SE 8のサポートに集中しており、言語とAPIの両方の点、そして Java EE 7の傘下から選んだ仕様もサポートします。また我々はSpringのwebサポートを次のレベルに引き上げるつもりで、非同期 HTTP I/OプロセスとWebSocketで動かします。Groovy 2のような代替言語のサポートも予定しています。
改善点の完全なリストは、ドキュメントのSpringフレームワーク3.2の新フィーチャと改善点セクションにある。Spring Framework 3.2 のバイナリビルドは、プロジェクトの Community Downloadsページからダウンロードできる。Apache 2 ライセンスの下で、ソースコードがGitHubからダウンロードでき、古いAnt+Ivy システムに代わって、新しい Gradleベースのビルドシステムによってビルドできる。