BT

新しい あなたは、アーリーアダプター?それともイノベーター?そんな皆様に、InfoQの新機能をご案内しています。詳細はこちら

Spring 3.0:Java 5が必要、新しい表現言語とRESTサポートを追加

| 作者: Ryan Slobojan フォローする 0 人のフォロワー , 翻訳者 南 伸二  人のフォロワー 投稿日 2010年1月5日. 推定読書時間: 1 分 |

原文(投稿日:2009/12/16)へのリンク

Spring Frameworkの新しいバージョンバージョン3.0が本日(2009年12月16日)リリースされた。InfoQではSpring FrameworkプロジェクトのテクニカルリードJuergen Hoeller氏と話し、このリリースについてさらに詳しく教わるとともに、それによってSpring製品ラインにもたらされる変化について聞いた。

Hoeller氏はSpring 3.0で新たに含まれることになった新しい主要な機能について次のように述べた:

  • Java 5が必要になった - コアAPI群は、ジェネリクスやアノテーションといったJava 5の機能を利用するようにアップデートされており、その結果、Spring 3.0はJava 5以降を必要とする
  • Spring Expression Language (SpEL) - JSFのUnified ELと同様に、リッチな表現の構築が非常に簡略化された
  • アノテーションベースコンポーネントのさらなるサポート - @Configuration, @Bean@DependsOnのようなSpring JavaConfig機能のいくつかがコアフレームワークに移された。
  • 制約アノテーションを用いた宣言的モデル検証 - JSR 303のサポートが追加され、@NotNull@Max(23)といったアノテーションを用いた検証規則をbeanに追加することができる
  • Spring MVCにおける包括的RESTサポート - RESTfulサーバとクライアント構築のサポートが追加された
  • Java EE 6サポート - JPA 2.0やJSF 2.0といったJava EE 6機能の多くがサポートされ、TomcatやJ2EE 1.4のようなJava EE 6準拠でないコンテナ上でも機能する
  • JSR 330サポート - JSR 330により導入されたjavax.injectアノテーションがサポートされた
  • アノテーションベース書式 - @DateFimeFormat(iso=ISO.DATE)@NumberFormat(style=Style.CURRENCY)といったアノテーションを用いてbeanフィールドは自動的にフォーマットされ変換される

A 包括的な変更履歴リファレンスドキュメントも利用可能である。

Hoeller氏はSpELについて少しだけ詳細に触れた:

SpELはUnified ELに従った構文を持つリッチな表現言語です。Unified ELがJSFにおける表現に利用されるのと全く同様です。私たちは特別な機能を持つ独自の表現パーサを持ち、それをbean定義設定に使うだけでなく、Spring Integrationのようなプロジェクトで利用するためにも活用しています。Springコアでは、"#{...}"という表現はXML bean定義や@Valueアノテーションといった多くの場所で使われ、動的に名前によって他のbeanを参照したり、簡潔なやり方でそのプロパティの参照を解除したりしています。

例えば、次のXMLブロック(3.0ドキュメントから)はSpELを用いてSpring beanのプロパティをJVMシステムプロパティから読むことで設定するために利用している:

<bean class="mycompany.RewardsTestDatabase">
    <property name="databaseName"
        value="#{systemProperties.databaseName}"/>

    <property name="keyGenerator"
        value="#{strategyBean.databaseKeyGenerator}"/>
</bean>

新しいRESTサポートについても少しだけ説明されている:

RestサポートをSpring MVCの世界にもたらし、MVCユーザの手の中に新しい強力な機能を持ち込むことが私たちの挑戦でした。私たちは、パス変数抽出、コンテントネゴシエーションに対して、ネイティブなMVCのサポートを行うことがここでは進むべき正しい道であると決心しました - Spring MVCの力を考慮して、それを基本的なアーキテクチャを壊すことなく次の段階に進めるためです。これはうまくいき、既存のSpring MVCアプリケーションにREST機能を追加することも簡単にできます。

私たちは、ウェブユーザインターフェースをREST規約に従わせることに最も焦点をあてています。その次に、Spring MVC上でのRESTベースウェブサービスに対する関心の増大への対応です。今やSpringコアの一部となったOXM(Object/XML Mapping)モジュールとの組み合わせにおいては特に関心が高まっています。最後に、REST指向のバックエンドサーバとのプログラム上でのやりとりのために、SpringスタイルのRestTemplateクラスの形でクライアントサイドのサポートを提供しています。

Spring 2.5を利用していたり、2.5リリースで採用されたアノテーションベースのスタイルに従うようにコードをアップデートしているのなら、アップデートはスムーズに行われるはずである - 新しい機能は3.0にアップグレードしたあとで、使うかどうかを決めればよいし、基本的なアーキテクチャの変更は不要である。フォームコントローラクラス階層のような古いものを利用していても3.0ではまだサポートされているが、廃止予定のため非推奨となっている。新しい3.0の機能を利用するには、アノテーションベースの@MVCスタイルへの移行が必要である。Spring 2.0ユーザでもコードの99%は引き続き動作するはずであるが、Apache Commons AttributesやWebLogic 8.1、WebSphere 5.1サポートといった古いコンポーネントは削除されている。

Spring Frameworkの将来の計画についてたずねた際、Hoeller氏は開発はSpring IntegrationSpring Web FlowSpringSource dm ServerSpring RooといったSpring製品ライン上の他のプロジェクトに非常に影響され続けるだろうと述べた。3.1リリースでは、その機能群はSpring Integration 2.0とSpring Web Flow 3.0に強く影響されることになり、第一級カンバセーション管理、スコープの拡張サポート、アノテーションベースコンポーネントモデルの刷新が計画されている。2010年中頃に3.1のリリースが計画されており、その後、3.2リリースが行われる予定になっているが、3.2に対する具体的な計画はまだ最終決定されてはいない。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT