2010年11月19日

Aspectjを使用したインターセプターでの処理対象メソッド取得

どうも、塩内藤です。

タイトルの処理がしないといけなくなったんですが、以前インターセプトについて記事を書いたのを思い出して、見てみました。。。

@RequestMappingが付与されたメソッドのインターセプトサンプルは書いてあったけど、今回やりたい事は書いてなかった。。。


ということで、サンプル

実際はタイトルの処理に加えて、ターゲットのメソッドに付与されているアノテーションを取得するという処理


@Around("execution(* sample.hoge.impl.*Impl.*(..))")
public Object doHogeImplIntercept(ProceedingJoinPoint pjp) throws Throwable {
Object result = null;

MethodSignature signature = (MethodSignature) pjp.getSignature();
HogeAnnotation hogeAnnotation = signature.getMethod().getAnnotation(HogeAnnotation.class);

hogeAnnotation.value();

result = pjp.proceed();

return result;
}


これで、sample.hoge.implパッケージ配下にあるクラスのうち、接尾語がImplのもので、その中にある全てのメソッドの処理をインターセプト

あとはpjp.getSignature()の戻りをMethodSignatureして、処理対象メソッドからアノテーションを取得します。

posted by しお at 19:46| Comment(0) | TrackBack(0) | spring
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/41778299

この記事へのトラックバック