Springは日本でも広く使われているフレームワークの一つですが,「XML地獄」や「学習コストが高い」などの批判を受けることもありました。それらの問題を改善するための一つの手段として,2007年11月にリリースされたバージョン2.5で本格的にアノテーションがサポートされました。
アノテーションのサポートによって,表1のような処理でXML記述を圧縮する仕組みが提供されています。
処理種別 | 説明 |
---|---|
オートワイヤリング | 自動的にbeanを対象のコンポーネントに注入する |
初期化処理・後処理 | DIコンテナの起動時と破棄のタイミングで起動する処理を指定する |
AOP | アスペクト指向の処理定義を行う |
SpringMVC | Spring MVC向けのクラスをPOJOで作成する |
トランザクション制御 | トランザクションの制御を行う |
スコープ | beanの有効範囲を定義する |
アノテーションを使用している方にとっては「何をいまさら」という感じかもしれません。しかし,システム開発の現場を見るとまだまだ旧来の方法を採用しているプロジェクトも少なくないようです。
そこで本稿では,下記の三つのテーマでアノテーションを紹介していきます。
(1) DI機能をアノテーションで定義しよう
(2) AOP(アスペクト指向プログラミング)をアノテーションで定義しよう
(3) トランザクションの管理をアノテーションで定義しよう
なお,本稿では,Spring 2.5系のライブラリを使用して動作確認をしています。