seasar2を使った、簡単なAOPのサンプルです。
seasar2に用意されているorg.seasar.framework.aop.interceptors.TraceInterceptorをアドバイス(インターセプタ)としてそのまま利用しています。
org.seasar.framework.aop.interceptors.TraceInterceptorは、ポイントカットとなるメソッドの前後にメソッド名や引数、戻り値をコンソールに出力してくれるアドバイス(インターセプタ)です。
今回のサンプルでは、log4jは使用していません。
log4jのjarは、クラスパスに置いていないので、
自動でjava.util.logging.Loggerが使用されます。
org.seasar.framework.aop.interceptors.TraceInterceptorはデバッグレベルでログを出力します。
java.util.logging.LoggerのログレベルはFINEにしておいてください。
参考URL:
http://www.alles.or.jp/~torutk/oojava/maneuver/2001/logging/logging.html
(1)パッケージ構成
(2)ソース
main()を実行すると以下の実行結果が得られます。
メソッドの前後にログが出力されています。
続いてapp.diconを以下のように変更してみます。
「<aspect pointcut="methodA">traceInterceptor</aspect>」の部分を修正しています。
すると、methodAの前後にだけアドバイスが織り込まれている(ウィービングされている)ことがわかります。