您当前的位置: 首页 >  Dongguo丶 Java

Java动态代理之JDK实现和CGlib实现(简单易懂)

Dongguo丶 发布时间:2018-12-17 11:11:19 ,浏览量:4

 代码懒得整理了,转一篇

https://www.cnblogs.com/ygj0930/p/6542259.html

--------------------------------------------------------------------------------------------------

在运行测试类的时候出现了异常

Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type
at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:184)
at net.sf.cglib.core.KeyFactory.(KeyFactory.java:66)
at net.sf.cglib.proxy.Enhancer.(Enhancer.java:69)
at factory.MyCglibFactory.myCglibCreator(MyCglibFactory.java:20)
at test.MyTest2.main(MyTest2.java:8)
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 5 more

经过查询之后发现除了要导入cglib的jar包之外还要导入asm的jar包,导入asm的jar包之后即可解决该问题。
--------------------- -------------------------------------------------------------------------------------
 

 cglib版本为3.0或3.1,org.objectweb.asm版本为3.1.0时
版本冲突,报错java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class
使用cglib 2.2 可解决此问题,该版本中的DebuggingClassWriter的父类为ClassWriter
 

关注
打赏
查看更多评论

Dongguo丶

暂无认证

  • 4浏览

    0关注

    422博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录