springIllegalArgumentException Can not set field to $Proxy 在spring中使用事物或AOP遇到的错误

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> springIllegalArgumentException Can not set field to $Proxy 在spring中使用事物或AOP遇到的错误

一、问题出现

今天在ssm整合多模块的时候,当service注入到controller时,出现了service无法注入问题。

应用transaction注解方法的典型场景:接口+实现,在实现整个类上加注解或一个特定方法上加注解。

运行时出现这样的错误:

Caused by: java.lang.IllegalArgumentException: Can not set xxxxxx field yyyyyy to com.sun.proxy.$ProxyNNNNNN

二、错误原因:

代码中出现了对实现的初始化,而配置文件中没有将AOP由默认的针对接口设置成针对类的。

三、解决方法:

一、配置文件中将


<tx:annotation-driven transaction-manager="transactionManager"/>

改成


<tx:annotation-driven transaction-manager="transactionManager" target-class-proxy="true"/>

这样就把默认为针对接口的AOP就变成了针对类的,这样设置应该就是可以使用代理类了。

原文地址:https://sihai.blog.csdn.net/article/details/80668473

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> springIllegalArgumentException Can not set field to $Proxy 在spring中使用事物或AOP遇到的错误


 上一篇
【图文讲解】eclipse中配置maven环境+导入maven项目 【图文讲解】eclipse中配置maven环境+导入maven项目
1.检测eclipse是否有maven环境打开import对话窗输入maven,如果下面红色方框里有东西可以跳过下一步的elipse中配置maven环境,如果方框里没有东西,按照下一步在eclipse中配置maven环境后即可出现 2.
2021-04-04
下一篇 
使用IDEA基于Maven搭建多模块聚合工程(springmvc+spring+mybatis整合) 使用IDEA基于Maven搭建多模块聚合工程(springmvc+spring+mybatis整合)
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号: 好好学java,获取优质学习资源。 终于有时间搞java了,今天使用IDEA基于maven搭建了多模块聚合工程,经过了多番尝试,终于成功啦! 注意:这里是在原
2021-04-04