Spring AOP 配置after-returning时异常问题

调试代码的时候发现如果在使用spring aop时想要在方法返回后取得返回值,会出现illegalargument异常,搜索了很多地方但都不是一个问题。
当xml配置为

<aop:after-returning method="afterReturning" pointcut-ref="servicePointcut" />

程序可以正常在切点后面加入增强事务,但是一旦添加了returning属性Spring就报异常了,经过检查并不是常说的增强方法没有返回值对应的参数等原因,后面查看文档发现spring实现aop采用了两种方法,一种是JDK自带的动态代理,一种是CGLib动态代理,其中JDK自带的动态代理是针对接口的动态代理,而CGLib是对普通类的动态代理。高版本spring自动根据运行类选择 JDK 或 CGLIB 代理。在给需要增强的方法添加接口之后,异常解决。

注:很神奇的事情在于,当我去掉接口想重现异常的时候,不论怎么改都不能再重现之前的异常,程序依旧能够正常执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值