如何用AOP拦截setter方法

时间:2017-04-10 15:35:30

标签: java scala annotations aop

我希望在获得使用setter指定的值之前对字段执行某些操作。我创建了注释和方面,但我不知道如何获得设置器。这是我的代码:

@Aspect
public class AnnotationAspect{

    @Pointcut("@annotation(annotationVariableName)")
    public void annotationPointCutDefinition(Annotation annotationVariableName){
    }

    @Pointcut("execution(* *(..))")
    public void atExecution(){}

    @Around("annotationPointCutDefinition(annotationVariableName) && atExecution()")
    public Object aroundAdvice(ProceedingJoinPoint joinPoint, Annotation annotationVariableName) throws Throwable {
        Object returnObject = null;
        returnObject = joinPoint.proceed();

        return returnObject;
    }
}

注释@Annotation应用于scala中的字段,因此方法为" field =" (我不知道这是否会改变一些事情)。 任何人都可以帮助我吗?

谢谢!

修改

这是注释

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Annotation{
}

示例代码:

class Test{

  @Annotation
  var testing: String =_

}

0 个答案:

没有答案