java - que - spring boot aop
Spring AOP-punto de corte para cada método con una anotación (1)
Algo como esto debería hacer:
@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();
}
}
Estoy tratando de definir un punto de corte, que capturaría todos los métodos anotados con (por ejemplo) @CatchThis
. Esta es mi propia anotación.
Además, me gustaría tener acceso al primer argumento del método, que será del tipo Long
. Puede haber otros argumentos también, pero no me importan.
EDITAR
Esto es lo que tengo ahora. Lo que no sé es cómo pasar el primer parámetro del método anotado con @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();
}
}