gpt4 book ai didi

java - Spring @Around > 参数的行为

转载 作者:行者123 更新时间:2023-11-30 03:10:21 27 4
gpt4 key购买 nike

我只是关注@Around example provided by spring ,并且有一个关于将参数传递给底层方法的行为的快速问题( their explanation wasn't clear to me )。

如果我将 Aspect 包装在一个接受参数的方法周围,我是否必须像这样显式地将参数传递到 proceed(Object[]) 方法中...(或者这只是为了覆盖参数?)

return pjp.proceed(pjp.getArgs());

或者在没有参数的情况下调用proceed,隐式地将原始参数传递给底层方法?

return pjp.proceed();

长话短说,我不想改变调用现有方法的行为。我目前正在编写一个快速测试来证明该行为......

最佳答案

是的,你说得对。调用不带参数的proceed,将原始参数隐式传递给底层方法。从用户的角度来看,proceed()pjp.proceed(pjp.getArgs()) 执行相同的操作。仅当您想要覆盖参数时,才需要调用 pjp.proceed(new Object[] {...})

对于基于 Spring 的运行时编织,请查看 MethodInvocationProceedingJoinPointReflectiveMethodInvocation::invocableClone分别,您将看到两个 ProceedingJoinPoint::proceed 方法都调用底层的ReflectiveMethodInitation::invocableClone(arguments)

关于java - Spring @Around > 参数的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33750168/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com