gpt4 book ai didi

java - 方法实现的切入点

转载 作者:行者123 更新时间:2023-12-02 07:33:21 27 4
gpt4 key购买 nike

我创建了一个带有指向带注释方法的切入点的方面。我得到的 JoinPoint 是来自接口(interface)的方法声明,而不是方法实现。因此,当我想要获取带注释的方法参数时,我必须在接口(interface)中而不是在实现中添加注释。

@AfterReturning(value = "@annotation(pl.styall.scylla.security.authorization.acl.AclSecure) && @annotation(aclSecure)", argNames = "jp,aclSecure,retVal", returning = "retVal")
public void addObjectAndEntry(JoinPoint jp, AclSecure aclSecure,
Object retVal) {
System.out.println(jp.toLongString());
MethodSignature signature = (MethodSignature) jp.getSignature();
Method method = signature.getMethod();
Annotation[][] methodAnnotations = method.getParameterAnnotations();

methodAnnotations 如果在方法实现中添加注释,则没有注释。正确的切入点是什么?

最佳答案

final String methodName = pjp.getSignature().getName();
final MethodSignature methodSignature = (MethodSignature)pjp.getSignature();
Method method = methodSignature.getMethod();
if (method.getDeclaringClass().isInterface()) {
method = pjp.getTarget().getClass().getDeclaredMethod(methodName, method.getParameterTypes());
}

来源:Spring AOP: how to get the annotations of the adviced method

关于java - 方法实现的切入点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12639986/

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