向大神求教,Spring 使用 cglib动态代理问题

向大神求教,Spring 使用 cglib动态代理问题,第1张

原因是使用了:

<aop:aspectj-autoproxy proxy-target-class="true"/>

配置proxy-target-class="true"则强制使用了CGLIB生成代理,mybatis的mapper没有默认构造方法,会报错:

Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy22]: Common causes of this problem include using a final class or a non-visible classnested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy22

修改成

<aop:aspectj-autoproxy/>

这个的意思我原本以为是完全不使用cglib的代理,现在发现应该是spring会自动在JDK动态代理和CGLIB之间转换。

实现cglib动态代理需要4个jar包:

asm-2.2.3,

asm-commons-2.2.3,

asm-util-2.2.3,

cglib-nodep-2.1_3

和之前的05 08一样, 右键 工程: 属性-》链接-》输入-》额外依赖项

直接输入库的名字就行了。

然后你可能需要包含新的库查找路径: 属性-》链接-》通用 -》额外库目录


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11569419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存