`

CGLIB与asm

 
阅读更多
“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。但是JAVA有着一个非常突出的动态相关机制:Reflection(反射)

CGLIB(Code Generation Library)是一个开源项目!
是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO(Persistant Object 持久化对象)字节码的动态生成。

JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。JDK的动态代理用起来非常简单,但它有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口的继承的类,该怎么办?现在我们可以使用CGLIB包
CGLIB是一个强大的高性能的代码生成包。它广泛的被许多AOP的框架使用,例如Spring AOP,最流行的OR Mapping工具hibernate也使用CGLIB来代理单端single-ended(多对一和一对一)关联。EasyMock和jMock是通过使用模仿(moke)对象来测试java代码的包。它们都通过使用CGLIB来为那些没有接口的类创建模仿(moke)对象。

CGLIB包的底层是通过使用一个小而快的字节码处理框架ASM,来转换字节码并生成新的类。除了CGLIB包,脚本语言例如Groovy和BeanShell,也是使用ASM来生成java的字节码。当然不鼓励直接使用ASM,因为它要求你必须对JVM内部结构包括class文件的格式和指令集都很熟悉。



http://www.blogjava.net/stone2083/archive/2008/03/16/186615.html
  • 大小: 14 KB
分享到:
评论

相关推荐

    cglib和asm

    cglib.jar和asm.jar .

    一套匹配的cglib和asm的jar包。

    在练习代理模式的时候,使用cglib时总是会出现cglib和asm的jar包不匹配的问题。这时候控制台会报错。如果单独找包,不容易匹配。这套jar包是自己试验过的。

    Cglib和Asm的jar包

    cglib-2.2.2.jar和asm-3.3.jar,使用Cglib需要的jar包。

    cglib + asm

    兼容性好的CGLIB和 ASM,欢迎下载

    Cglib和asm的jar包

    cglib需要用到的动态代理jar包。贡献出来.

    cglib包及依赖汉cglib3.1和asm4.2

    cglib包及依赖汉cglib3.1和asm4.2,主要作用是用户代理,代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。...

    cglib.jar | asm.jar对应版本

    cglib.jar 和 asm.jar 对应版本

    cglib 和asm jar包

    jdk动态代理是由Java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。总的来说,反射机制在生成类的过程中比较高效,而asm在生成类之后的相关执行过程中比较高效(可以通过将asm生成的类进行缓存,...

    cglib缺少asm-X.jar

    cglib代理,若代理过程中报java.lang.ClassNotFoundException: org.objectweb.asm.Type错说明缺少该jar包

    CGLib和ASM相关jar包

    开发基于CGLib的动态代理应用所需的jar吧,包括CGLib和ASM。因为CGLib是基于ASM的,所以开发CGLib的应用不可没有ASM相关的jar包.

    CGLIB需要的asm-2.2.3.jar和cglib-nodep-2.2.jar

    里面包含完整的cglib-nodep-2.2.jar和asm-2.2.3.jar,放心下载

    Cglib&ASM;打包合集

    Cglib所需的库。这压缩包里面是cglib_3.2.5.jar和asm_5.2.jar。有需要的可以下载

    CGLIB和ASM的jar包

    CGLIB和ASM的jar包

    Cglib和ASM打包合集

    这压缩包里面有asm-5.2.jar、cglib-3.2.5.jar、cglib-3.2.5-sources.jar,是编译cglib代理的库文件

    配套的cglib和asm包

    因为在cglib简单使用的时候,和asm因为兼容问题运行老是失败。比如提示java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.(I)V 之类的乱七八糟的错误。最后通过使用正确的配套的版本使得程序成功运行。

    cglib和asm jar包

    cglib.jar和asm.jar................................

    cglib动态代理所需jar包 cglib2.2,asm3.3.jar

    不导入asm.jar会出现Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type报错,参考文章: http://blog.csdn.net/xujingcheng123/article/details/79030216

    cglib + asm 强大的反射机制

    CGlib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。

    asm3+cglib2

    asm3.3相关jar包集合(asm-commons-3.3,asm-3.3.1,asm-tree-3.3)和CJLIB2.2.jar。asm3.3相关jar包集合(asm-commons-3.3,asm-3.3.1,asm-tree-3.3)和CJLIB2.2.jar

Global site tag (gtag.js) - Google Analytics