Spring-AOP:@AfterReturning建议混乱

时间:2014-01-25 07:01:55

标签: java spring spring-aop

@Pointcut("execution(* package.method(..))")
public void onComplete() {
}

鉴于上述情况,我试图通过以下方式声明@AfterReturning建议:

//Sample 1      
@AfterReturning(value="onComplete()",
                returning="returnValue")
public void callOnCompletion(Object returnValue){               
    // aditional code here ..
}

//Sample 2
@AfterReturning(pointcut="onComplete()",
                returning="returnValue")
public void callOnCompletion(Object returnValue){               
    // aditional code here ..
}

//Sample 1 with JoinPoint
@AfterReturning(value="onComplete()",
                returning="returnValue")
public void callOnCompletion(JoinPoint jp, Object returnValue){               
    // aditional code here ..
}

//Sample 2 with JoinPoint
@AfterReturning(pointcut="onComplete()",
                returning="returnValue")
public void callOnCompletion(JoinPoint jp, Object returnValue){               
    // aditional code here ..
}

我的怀疑如下:

  • 传递给value的{​​{1}}和pointcut属性之间的区别是什么?
  • 两个中的哪一个(@AfterReturningvalue)是默认的?
  • 何时将pointcut参数传递给建议并何时不通过?有规则或情况吗?我见过用JoinPoint定义的例子。但是当我尝试将JoinPoint传递给JoinPoint方法时,初始化时出现callOnCompletion(..)错误。
  • formal unbound in pointcut ...返回类型需要参数returnValue吗?
  • 对于那些实际返回值的方法,参数void是否必需?

0 个答案:

没有答案