(つまり)@CatchThis
で注釈が付けられたすべてのメソッドをキャッチするポイントカットを定義しようとしています。これは私自身の注釈です。
さらに、メソッドの最初の引数にアクセスしたいのですが、これはLong
型になります。他の議論もあるかもしれませんが、私はそれらを気にしません。
編集
これは私が今持っているものです。私が知らないのは、@CatchThis
でアノテーションが付けられたメソッドの最初のパラメーターを渡す方法です。
@Aspect
public class MyAspect {
@Pointcut(value = "execution(public * *(..))")
public void anyPublicMethod() {
}
@Around("anyPublicMethod() && @annotation(catchThis)")
public Object logAction(ProceedingJoinPoint pjp, CatchThis catchThis) throws Throwable {
return pjp.proceed();
}
}
このようなことをする必要があります:
@Aspect
public class MyAspect{
@Pointcut(value="execution(public * *(..))")
public void anyPublicMethod() {
}
@Around("anyPublicMethod() && @annotation(catchThis) && args(.., Long ,..)")
public Object logAction(
ProceedingJoinPoint pjp, CatchThis catchThis, Long long)
throws Throwable {
return pjp.proceed();
}
}