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

版权声明:本文为本人辛苦原创文章,如果需要转载,请注明出处,谢谢!!! https://blog.csdn.net/sihai12345/article/details/80668473

一、问题出现

今天在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就变成了针对类的,这样设置应该就是可以使用代理类了。

阅读更多

没有更多推荐了,返回首页