Вот мой код:
@Pointcut("execution(* *(..))")
public void cutPointToken() {}
@Pointcut("execution(* *(..))")
public void cutPointEmptyParam() {}
@Around("cutPointToken()")
public Object authenticateToken(ProceedingJoinPoint joinPoint) throws Throwable {
LOGGER.info("authenticate -- start --");
...
Object o = joinPoint.proceed();
LOGGER.info("authenticate -- end --");
return o;
}
@Around("cutPointEmptyParam()")
public Object checkParameter(ProceedingJoinPoint joinPoint) throws Throwable {
LOGGER.info("check param -- start --");
...
Object o = joinPoint.proceed();
LOGGER.info("check param -- end --");
return o;
}
Я получил:
authenticate -- start --
check param -- start --
...
check param -- end --
authenticate -- end --
Ожидаемое:
check param -- start --
authenticate -- start --
...
authenticate -- end --
check param -- end --
Как я могу изменить порядок выполнения этих двух методов?
Попытка аннотации @Order
, @Order(1)
для метода checkParameter
и @Order(2)
для другого, но это не работает.