基于AspectJ实现AOP操作:
被增强方法如果是没有返回值的方法,环绕通知顺利运行。
如下图:
若是对有返回值的方法环绕通知,就会报错:
解决方法:
1.将环绕通知改成如下,添加环绕通知返回值,给obj赋proceed():
@Around(value = "execution(* com.TJW.beans.User.update(..))")
public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
System.out.println("环绕前。。");
//解决Null return value from advice does not match primitive return type for
Object obj=proceedingJoinPoint.proceed();
System.out.println("环绕后。。");
return obj;
保持环绕通知和被增强方法返回值一致,所以选用Object
结果:
2.不要在AOP中返回参数