springIllegalArgumentException Can not set field to $Proxy 在spring中使用事物或AOP遇到的错误
生活随笔
收集整理的這篇文章主要介紹了
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就變成了針對類的,這樣設置應該就是可以使用代理類了。
總結
以上是生活随笔為你收集整理的springIllegalArgumentException Can not set field to $Proxy 在spring中使用事物或AOP遇到的错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【图文讲解】eclipse中配置mave
- 下一篇: “面试不败计划”: java语言基础面试