您的位置:首页 > 编程语言 > Java开发

Spring中Can not set field to $Proxy 报错解决

2017-03-14 14:17 531 查看
问题: 在spring相关项目启动的时候,报错相关内容为Can not set field to $Proxy。

原因:因为JDK实现动态代理业务的时候,只能针对接口进行定义。然而对于类需要进行代理,需要使用到CGLib。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现Spring AOP的基础。正是由于在代码中使用了类代理,但是配置不正确,所以报错。

解决方法:在XML配置文件中加入 proxy-target-class=”true” 配置。例如:

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


或者

<aop:config proxy-target-class="true">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring
相关文章推荐