連載
» 2007年09月28日 00時00分 公開

Spring 2.0時代の開発スタイル(2):Springは「2.0」でどんだけ便利になったの? (1/3)

[山本大,クロノス]

 前回の記事ではSpring IDE 2.0のインストールを行いました。

 今回はSpring 2.0の新機能を紹介します。特に、XMLSchemaXSD)に対応した構成ファイルの記述方法を詳しく紹介していきます。

編集部注Springについて詳しく知りたい読者は連載『Spring Frameworkで理解するDI』をご参照ください。

Spring 2.0の新機能、総まとめ

 Spring Framework version 2.0(以下、Spring 2.0)は、Spring Frameworkのメジャーバージョンアップ版であり、Version 1.xとの互換性を保っています。Spring 2.0で改良された機能や追加された機能を一覧に示します。

No 分類 機能 内容
1-1 DIコンテナの改良 XML設定のシンプル化 設定ファイルにXMLSchemaを利用できる。Springが用意している定義済みのXMLSchemaネームスペースを利用することで、より簡単に設定ファイルを作成できる。また、従来のスキーマ定義方法であるDTDも改良されている
1-2 新しいBeanのスコープをサポート Web環境におけるrequestやsessionなどのスコープが追加された
1-3 XML設定の拡張をサポート XML設定ファイルを開発者が拡張できる。これによりアプリケーション開発者や、サードパーティーフレームワークの製造ベンダがXMLタグを拡張できる
2-1 AOP AOPのためのXML設定記述のシンプル化 Aspectを簡易に定義するためのXMLSchemaネームスペースを定義している。これによりAOPの設定の可読性が向上する
2-2 AspectJスタイルでの記述をサポート @AspectJアノテーションを利用することでAspectJ方式を利用できる。また、AspectJとSpringAOPでAspectを共有できる
3-1 中間層 XML設定での宣言的トランザクション記述のシンプル化 XMLで記述するトランザクション制御がSpring 1.2系のときよりもより簡単に利用できる。また、AspectJライブラリとともに提供することで、Springのコンテナで生成を管理していないオブジェクトに対するトランザクション制御も行える
3-2 JPA JPAの抽象レイヤをサポート。JPAとはO/Rマッピングのための標準化された仕様であり、利用用途はSpringのJDBC抽象レイヤと似ている
3-3 非同期JMS JMSを使って非同期メッセージを受け取れるようになった。JmsTemplateカプセル化されている
3-4 JDBC いくつかの新しいクラスが追加された。例えば、NamedParameterJdbcTemplateは、名前付けされたSQLクエリーパラメータを利用可能にする。そのほかの機能もJava 5の機能を使ってより簡単に利用できるようになった
4-1 Web層 SpringMVCのためのFormタグライブラリ JSPページを作成するのがより簡単になるJSPタグライブラリを提供している
4-2 使いやすいデフォルト値 SpringMVCでは、「設定よりも規約を」というテーマを取り入れた。これによりControllerやViewに規約に従った名前を付けることでXMLの記述量を大幅に削減できるようになった
4-3 Portletフレームワーク Portletフレームワークをサポートした。PortletはSpringMVCフレームワークと同じ用途で利用するフレームワークである
5-1 そのほか 動的言語サポート Javaではない言語で書かれたBeanをサポートするようになった。対象となるのは、動的言語のJRubyGroovyBeanShellなど
5-2 JMX MBeanサーバに登録されたMBeanを実行できる
5-3 タスクスケジュール 抽象化したタスクスケジュール機能を提供するようになった
5-4 Java 5サポート Java 5の機能を利用して以下の機能を提供するようになった
 ・@Transactional
 ・@Required
 ・SimpleJdbcTemplate
 ・JPA
 ・@AspectJ
 ・SpringとAspectJによるドメインオブジェクトへのインジェクション
表1 Spring 2.0の新機能

 さらに詳細な情報は、Spring Frameworkドキュメント(英語)を参照してください。

Spring 2.0の目玉! DIコンテナの改良

 Spring 2.0の改良の中でも目玉というべき改良は、XML構成ファイルXMLSchema(以下、XSD)ベースのスキーマ定義を利用できるようになったことです。「スキーマ定義」とは、XMLのデータ構造の定義のことです。

 XSDのほかのXMLのためのスキーマ定義の仕様として代表的なものにはDTD(Document Type Definition)があります。つまり、XSDはDTDの代わりになるものだといえます。さらに、DTDと比較してXSDはさまざまな機能を持っています。

編集部注DTDについて詳しく知りたい読者は、XML用語事典の[DTD]をご参照ください。

DTDではなくXSDを使うメリット

 例えば、XSDはDTDと比べて以下のようなメリットを持っています。

  • 書式がXMLに完全に対応しているしている
  • プログラミング言語やDBで使用されている標準的なデータ型(date型、integer型など)の多くが利用可能であり、データ型を新たに定義できる
    • XMLパーサでデータ型の検証ができる。アプリケーションがXMLを読み取る際に、容易にデータ型の検証ができる
    • データ型に名前を付けて、モジュール化して再利用可能

XSDを使う最大のメリット、“ネームスペース”とは?

 中でもSpringFrameworkにおいてXSDが採用されたことによる最大のメリットの1つは「XSDの“ネームスペース”という仕組みによってモジュール化されたタグの定義を組み込むことができるようになった」ことだといえます。

 ネームスペースにあらかじめ定義された「略式のタグ記述」を利用できるようになったことで構成ファイルの記述が容易になりました。

Spring 2.0は、1.xに続いてDTDも使える

 XSDベースの構成ファイルは明らかに開発効率を向上できる機能なので利用が推奨されていますが、何らかの理由によりXSDを利用できない場合は、DTDを引き続き利用することになります。

 そして、Spring 2.0では、DTDについても改良を行っています。改良されたDTDを利用する場合、Spring 1.x時代に作成した構成ファイルのDOCTYPEの宣言をspring-beans-2.0.dtdに変えることで利用できます。

 次ページでは、Spring IDE 2.0でのXSDファイルの作り方やXSDネームスペース一覧などについて解説します。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。