gpt4 book ai didi

java - JoinPoint 或 ProceedingJoinPoint 的对象为什么可以调用方法?

转载 作者:行者123 更新时间:2023-12-02 08:40:54 25 4
gpt4 key购买 nike

AspectJ的JoinPoint是一个接口(interface),ProceedingJoinPoint也是一个扩展Joinpoint的接口(interface)。

但是,当我在某个方面使用它们时,我可以直接使用它们的实例和方法。

@Around("execution(* com.luv2code.aopdemo.dao.service.*.getFortune(..))")
public Object aroundGetFortune(
ProceedingJoinPoint proceedingJoinPoint) throws Throwable{

String method = proceedingJoinPoint.getSignature().toShortString();
System.out.println("\n=======> Executing @Around on method: " + method);

return null;
}

这怎么可能?接口(interface)不是应该由一些类来实现才能使用吗?

还是 AspectJ 中的转换是在幕后完成的?

谢谢,

最佳答案

在运行时,Spring 框架提供 MethodInvocationProceedingJoinPoint 的实例这是 ProceedingJoinPoint 的实现.

来自source code :

public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, JoinPoint.StaticPart {..}

回答你的问题,是的,Spring 框架有一个接口(interface)的实现。

您可以调试 Spring AOP 程序以观察运行时发生的情况。

关于java - JoinPoint 或 ProceedingJoinPoint 的对象为什么可以调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61396929/

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