遇到 AOP 环绕通知报错  “return value from advice does not match primitive return type for: public boolean”

百度后搜到是因为 环绕通知的返回值类型要为 object ,而出问题的代码返回值类型 写成了void。

参考:AOP 报错 return value from advice does not match primitive return type for: public boolean

那么为什么其他通知(前置 后置 异常 返回)的返回值类型都是void,环绕通知的返回值类型为object有什么用呢

参考:spring aop 环绕通知around和其他通知的区别

 

简而言之,可以改变方法返回值,具体应用参见上面这个链接的内容。

作者原文:

1) 目标方法的调用由环绕通知决定,即你可以决定是否调用目标方法;而前置和后置通知   是不能决定的,他们只是在方法的调用前后执行通知而已,即目标方法肯定是要执行的。

2)  环绕通知可以控制返回对象,即你可以返回一个与目标对象完全不同的返回值,虽然这很危险,但是你却可以办到。而后置方法是无法办到的,因为他是在目标方法返回值后调用。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-14
  • 2021-11-17
  • 2020-01-10
  • 2022-12-23
猜你喜欢
  • 2021-12-22
  • 2021-06-19
  • 2022-01-20
  • 2021-04-12
  • 2021-10-04
  • 2021-07-23
相关资源
相似解决方案