検索
連載

Spring 2.0で自分なりの開発スタイルを確立しようSpring 2.0時代の開発スタイル(3)(1/3 ページ)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 前回の記事でSpring 2.0の新機能について解説しました。今回はSpring 2.0のAOP(アスペクト指向プログラミング)機能と新しく追加されたWebに対応するBeanスコープについて解説します。

 AOPとは、プログラムに対して後付けで処理を織り込む仕組みです。AOPについての詳細は、以前の連載「Spring Frameworkで理解するDI」第3回「Spring AOPサンプルアプリでAOPを理解する」を参照ください

AOPネームスペースを使ってHello World!!

 AOPネームスペースは、Spring AOPの設定を処理するタグを含むネームスペースです。Spring 2.0ではAOP機能が強化されました。特に、AspectJとの統合が強力で、従来のプロキシベースAOPに加えて、「AspectJスタイルのAOP」が利用できるようになりました。

編集部注AspectJについて詳しく知りたい読者は、@IT情報マネジメント アーキテクチャ記事『AspectJから学ぶアスペクト指向の理解』をご参照ください。

 AOPネームスペースではSpringがサポートするさまざまなバリエーションに対応したAOPを利用するためのタグが用意されています。ここでは、AOPネームスペースの利用方法を、サンプルを使って簡単に解説します。

AspectJライブラリのインストール

 この章で作成するサンプルでは、AspectJの機能を利用してAOPを実現します。AspectJの機能を利用するために、AspectJのライブラリをインストールする必要があります。これらの依存ライブラリはAspectJのダウンロードサイトからダウンロードできます(または、Springのwith-dependenciesディストリビューションにも含まれています。ダウンロードファイル名は「spring-framework-X.X.X-with-dependencies.zip」です)。

図1 AspectJのダウンロードサイト
図1 AspectJのダウンロードサイト

 Eclipseで以下のライブラリにビルドパスを設定してください。

・aspectjlib.jar
・aspectjweaver.jar
・cglib-X.X.jar(Xはバージョン番号。本稿では、cglib-nodep-2.1_3.jarを利用)

サンプルプログラムの構成

 以下(表1)にサンプルプログラムの構成ファイル一覧を表します。

作成するファイル 概要 備考
ao.xml Spring構成ファイル 配置場所:
%ソースディレクトリ%\ao.xml
AdviceSample.java プログラムに後から織り込む処理 クラス名:net.kronos_jp.aop.AdviceSample
SampleBean.java hello()メソッドを持つサービスオブジェクト。AOPによって処理が織り込まれる クラス名:net.kronos_jp.aop.SampleBean
SpringStart.java 起動プログラム。Springのコンテキストを作成し、SampleBeanのhell()メソッドを実行する クラス名:net.kronos_jp.aop.SpringStart
表1 サンプルで作成するファイルの一覧

aopネームスペースに対応したSpring構成ファイルを作成

 Spring IDE 2.0をインストール済みのEclipse(Spring IDE 2.0のインストールについては連載第1回を参照してください)で、ソースディレクトリのルートを選択します。そして、[ファイル(F)]→[新規(N)]→[その他(O)]を選択し、新規ファイル作成の[ウィザード選択ダイアログ]を開いてください。ダイアログ上のツリーから[Spring]→[Spring Bean Definition]を選択したうえで、新しいSpringの構成ファイル名(ここでは、「ao.xml」)を入力し、[次へ >(N)]ボタンをクリックして、ウィザードを進めます。

図2 構成ファイル作成ウィザード画面(AOPネームスペースの読み込み)
図2 構成ファイル作成ウィザード画面(AOPネームスペースの読み込み)

 上記の画面(図2)でAOPネームスペースを読み込むようチェックを付けて[終了(F)]ボタンを押下することで、以下(リスト1)のファイルが作成されます(太字がAOPネームスペースの利用のための記述)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

サンプルプログラムの準備(AOP使用前)

 次に、サンプルプログラムでAspectを織り込む先のBeanとして「SampleBean.java」(リスト2)を作成します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 上記のサンプルロジックを含むSampleBeanを呼び出すための、アプリケーション起動プログラムとして「SpringStart.java」(リスト3)を作成します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 上記のプログラムが動作するようにao.xmlにsampleBeanの定義を追記します(リスト4)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 以上が完成したら、SpringStart.javaプログラムを実行してください。以下のようにメッセージが表示されればOKです。この時点では、まだAspectは織り込まれていません。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 では続けて、このプログラムにAspectを織り込みたいと思います。

サンプルプログラムの作成(AOP使用後)

 サンプルに織り込むAspectとして「AdviceSample.java」(リスト5)を作成します。このクラスはafterHello()というメソッドを持つだけのPOJOです。

編集部注:POJOそのものについて詳しく知りたい読者は、「J2EE Watch 第11回、米JBossは米Red Hatとマーケットシェア拡大を狙う」の「*2:POJO」を参照してください。

 このafterHello()メソッドがhello()メソッドの後に実行されるようにAOPで織り込みます。織り込みに利用するメソッド名に制約はありませんので、どのような名称のメソッドを付けることも可能です。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 次に、Spring構成ファイルを修正する必要があります。ao.xmlファイルに以下(リスト6)の<aop:config />タグを記述してください。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 以上の修正が完了したら、SpringStart.javaプログラムを実行してください。以下のようにメッセージが表示されれば完成です。AOP記述によって機能が織り込まれたことが確認できます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 次ページで、Spring構成ファイルの詳細(リスト6で使用しているAOPネームスペースのタグ)を解説していきます。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る