access class variable in aspect class

前端 未结 3 2220
迷失自我
迷失自我 2021-01-02 12:36

i am creating an aspect class with spring aspectj as follow

@Aspect
public class AspectDemo {
  @Pointcut(\"execution(* abc.execute(..))\")
     public void          


        
3条回答
  •  长情又很酷
    2021-01-02 12:52

    You need to get a reference to the target object and cast it to your class (after an instanceof check, perhaps):

    Object target = pjp.getTarget();
    if (target instanceof Abc) {
        String name = ((Abc) target).getName();
        // ...
    }
    

    The recommended approach (for performance and type safety) is to have the target mentioned in the pointcut:

    @Around("executeMethods() && target(abc)")
    public Object profile(ProceedingJoinPoint pjp, Abc abc) ....
    

    But this will only match the executions on a target of type Abc.

提交回复
热议问题