Spring AOP - точка для каждого метода с аннотацией
-
26-10-2019 - |
Вопрос
Я пытаюсь определить точку, которая поймает каждый метод, который аннотирован (т.е.) @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();
}
}
Не связан с StackOverflow