ITEEDU

获取参数

通知经常要得到业务方法的参数。这可以通过JoinPoint来实现。

任何通知方法可以将第一个参数定义为 org.aspectj.lang.JoinPoint 类型,环绕通知需要定义为 ProceedingJoinPoint 类型的, 它是 JoinPoint 的一个子类。

JoinPoint 接口提供了一系列有用的方法, 比如 getArgs()(返回方法参数)、getThis()(返回代理对象)、getTarget()(返回目标)、getSignature()(返回正在被通知的方法相关信息)和 toString()(打印出正在被通知的方法的有用信息)。

private void checkSecurity(JoinPoint joinPoint) {
    Object[] args = joinPoint.getArgs();
    for (int i=0; i<args.length; i++) {
        System.out.println(args[i]);
    }
    System.out.println(joinPoint.getSignature().getName());
    System.out.println("----------checkSecurity()---------------");
}