Аргумент Aop и Mono - PullRequest
0 голосов
/ 26 мая 2020

У меня есть метод

Mono<ReceiptResponse> a01(Mono<DefaultBeneficiaryBankRequest> request)

и аспект

    @Around("callAtMyServiceSecurityAnnotation(request)")
    @Order(1)
    public Object scheduleTimeout(ProceedingJoinPoint joinPoint, Mono<?> request) {
        Mono<?> retVal = (Mono)joinPoint.proceed();
        return retVal.doOnSuccess(i -> {
            ...
            someMethod(<request.value>)// <-- How I can get requets value here?
            ...
        });
    }

Как я могу получить значение запроса как аргумент someMethod?

1 Ответ

0 голосов
/ 27 мая 2020

Информация в вашем вопросе неполная, но мне кажется, что ваш pointcut callAtMyServiceSecurityAnnotation(request) уже захватывает запрос и пересылает его вашему методу совета как параметр Mono<?> request. Итак, ответ на ваш вопрос прост: просто используйте request, чтобы получить доступ к аргументу запроса.

Вы не показываете свой фактический pointcut, но предполагая, что это что-то вроде (непроверено, пишите просто вольный стиль потому что у меня нет вашего тестового примера, чтобы попробовать его)

@Pointcut("within(my.package.MyTargetClass) && execution(* a01(*)) && args(request)")
public void callAtMyServiceSecurityAnnotation(Mono<?> request) {}

он должен просто работать.

...