Aop和Mono争论

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Aop和Mono争论相关的知识,希望对你有一定的参考价值。

我有方法

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的参数?

答案

你的问题中的信息并不完整,但在我看来,你的pointcut callAtMyServiceSecurityAnnotation(request) 已经捕捉到了请求,并将其转发给您的建议方法,作为 Mono<?> request 参数。所以你的问题的答案很简单。只要用 request 以获得对请求参数的访问。

你没有展示你的实际pointcut,但假设是这样的(未经测试,写的只是freestyle,因为我没有你的测试用例可以试一试

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

它应该只是工作。

以上是关于Aop和Mono争论的主要内容,如果未能解决你的问题,请参考以下文章

JAVA之AOP

如何在 Mono for android 中使用 Runnable

应用程序立即崩溃,没有异常或日志(看起来像 xamarin/mono 错误)

spring aop中this和target区别

AOP框架Dora.Interception 3.0 [3]: 拦截器设计

阿里四面:你知道Spring AOP创建Proxy的过程吗?