井原 嘉信(いのはら よしのぶ)
 株式会社DTS ネットワーク事業本部所属。Springを利用した業務開発に携わる。
石橋 稔章(いしばし としあき)
 株式会社DTS ネットワーク事業本部所属。Struts/Springをベースとしたフレームワークの開発・保守,プロジェクト支援に携わる。2008年,社内認定制度によりITアーキテクトに認定される。

 Springは日本でも広く使われているフレームワークの一つですが,「XML地獄」や「学習コストが高い」などの批判を受けることもありました。それらの問題を改善するための一つの手段として,2007年11月にリリースされたバージョン2.5で本格的にアノテーションがサポートされました。

 アノテーションのサポートによって,表1のような処理でXML記述を圧縮する仕組みが提供されています。

表1●アノテーションで提供されている処理
処理種別 説明
オートワイヤリング 自動的にbeanを対象のコンポーネントに注入する
初期化処理・後処理 DIコンテナの起動時と破棄のタイミングで起動する処理を指定する
AOP アスペクト指向の処理定義を行う
SpringMVC Spring MVC向けのクラスをPOJOで作成する
トランザクション制御 トランザクションの制御を行う
スコープ beanの有効範囲を定義する

 アノテーションを使用している方にとっては「何をいまさら」という感じかもしれません。しかし,システム開発の現場を見るとまだまだ旧来の方法を採用しているプロジェクトも少なくないようです。

 そこで本稿では,下記の三つのテーマでアノテーションを紹介していきます。

(1) DI機能をアノテーションで定義しよう
(2) AOP(アスペクト指向プログラミング)をアノテーションで定義しよう
(3) トランザクションの管理をアノテーションで定義しよう

 なお,本稿では,Spring 2.5系のライブラリを使用して動作確認をしています。