簡體   English   中英

AspectJ - 獲取帶注釋的方法參數的值

[英]AspectJ - Get value of annotated method parameter

我創建了自定義注釋@MyAnn 我將使用它來注釋方法參數。

例如: public static call(@MyAnn String name){...}

使用AspectJ,如何訪問和更新使用注釋注釋的所有參數的值?

我發現展示了如何創建切入點瞄准定制標注,一些示例代碼在這里

所以現在,我用切入點創建了一個方面。 但我不知道獲得MyAnn注釋參數值的MyAnn

@Aspect
public class MyAnnAspect {

    @Around("execution(@my.package.test.MyAnn") // I hope this pointcut will work
    public void changeParameter(final ProceedingJoinPoint pjp) throws Throwable {
        // How I can there get parameter value (and chage it)? 
    }
}

我不認為切入點工作,因為它不是通過您可以做的方式注釋的方法:

MethodSignature ms = (MethodSignature) pjp.getSignature();
Method m = ms.getMethod();
Annotation[][] pa = m.getParameterAnnotations();

現在,您可以迭代注釋,並找到正確的注釋,如果存在,則通過調用pjp.getArgs()獲取參數值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM