|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| サンプルアプリケーションへのAOP適用 | ||||||||||||
|
それでは、サンプルの従業員管理WebアプリケーションにAOPを適用していきましょう。 先に記述したように、今回はSeasar2のAOPが提供するInterceptorを用いたトレースログの出力処理と、独自実装の例外処理を追加したものになります。 |
||||||||||||
| Adviceの作成と定義ファイルの修正 | ||||||||||||
|
まずは例外処理を独自実装したAdviceであるExceptionAdviceです(リスト8)。例外処理なのでThrowsAdviceを実装して作成します。今回は、例外の種類によって処理を振り分けないため、メソッドは1つになります。 リスト8:例外処理 |
||||||||||||
public class ExceptionAdvice extends ThrowsInterceptor {
|
||||||||||||
|
次にトレース処理ですが、これは先ほど「TraceInterceptor」の項で取り上げたorg.seasar.framework.aop.interceptors.TraceInterceptorを利用します。TraceInterceptorを適用することでメソッドの開始と終了がトレースログとして出力されます。 以上でAdviceの実装は終了です。 |
||||||||||||
| コンポーネント定義ファイルの修正 | ||||||||||||
|
次にコンポーネント定義ファイルを修正します。サンプルの定義ファイル"employee.dicon"のAOPに関する部分を解説していきます。 リスト9はコンポーネント定義ファイルにEmployeeManager用のAOPを設定した部分です。 リスト9:EmployeeManager用のAOP設定 |
||||||||||||
<!-- EmployeeManager -->
|
||||||||||||
|
リスト9の(3)は、例外処理用に作成したExceptionAdviceと、Seasar2が提供するTraceInterceptorのコンポーネント定義です。 リスト9の(2)は、先ほど「InterceptorChain」の項で取り上げたInterceptorChainを使用して、ExceptionAdviceとTraceInterceptor、それに加えてトランザクション処理を制御するj2ee.requiredTxの3つのAdviceをコンポーネント"managerAop"として定義しています。なお、コンポーネント"j2ee.requiredTx"の定義は定義ファイル"j2ee.dicon"で行われています。 最後にリスト9の(1)で、EmployeeManagerImplのコンポーネント定義を行う箇所でアスペクトとしてコンポーネント"managerAop"を定義しています。 表5は、AOPで使用する主なタグ/属性の説明です。
表5:AOPで使用するタグ/属性の説明 以上で、EmployeeManagerImplに対するAOPを利用した例外処理とトレースログの出力処理の追加設定は終了です。 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||


