`

GCLIB代理

阅读更多

        CGLib (Code Generation Library) 是一个强大的,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。      

        CGLib 是Spring、Hibernate依赖的核心包,但是CGLib还算不上最底层的,因为它是在asm包之上做了封装,以增强易用性。据了解,Hibernate3.2已经不再依赖CGLib了,而直接依赖asm。这些都不影响CGLib的强大功能。

 

        下面一个小例:

        package cglib;

        public class Target{

                  public String execute() {
                            String message = "----------test()----------";
                            System.out.println(message);
                            return message;
                  }
         }

         //

         package cglib;

         import java.lang.reflect.Method;
         import net.sf.cglib.proxy.MethodInterceptor;
         import net.sf.cglib.proxy.MethodProxy;

         public class MyMethodInterceptor implementsMethodInterceptor{

                   public Object intercept(Object object, Method method, Object[] args,
         MethodProxy methodProxy) throwsThrowable {  

 
                             Object result = methodProxy.invokeSuper(object,args);
                             return"leaf";
                   }

          }

          //

          package cglib;

          import net.sf.cglib.proxy.Enhancer;

          public class TestCglibProxy {

                    public static void main(String rags[]){


                              Target target = newTarget();
                              TestCglibProxy test = newTestCglibProxy();
                              Target proxyTarget = (Target)test.createProxy(Target.class);
                              String res=proxyTarget.execute();
                              System.out.println(res);
                    }

                    public  Object createProxy(Class targetClass){


                               Enhancer enhancer = newEnhancer();
                               enhancer.setSuperclass(targetClass);
                               enhancer.setCallback(newMyMethodInterceptor());
                               returnenhancer.create();
                    }
           }

         ///输出:

          ----------test()----------
          leaf

分享到:
评论

相关推荐

    jdk动态代理模式的分析与底层实现

    基于java的jdk动态代理, 比较了静态代理与动态代理的区别,以及动态代理的底层实现,反编译class文件 jdk动态代理和cglib的区别

    上海微敏自控Galil_gclib_范例Python.zip

    上海微敏自控是一家专注于工业自动化领域的公司,其Galil_gclib库是为与Galil运动控制器进行通信而设计的。本资料包是针对Galil_gclib库的一个Python编程示例,对于想要利用Python控制Galil控制器的开发者来说极具...

    galil_gclib_311

    《Galil GCLib 311:运动控制开发的核心工具》 Galil GCLib 311 是一套专为Galil运动控制器设计的全面开发资源库,它包括了DLL(动态链接库)、DOC(文档)、EXAMPLES(示例程序)、INCLUDE(头文件)、LIB(库文件...

    上海微敏自控Galil_gclib_范例MinGW.zip

    《上海微敏自控Galil_gclib_范例MinGW.zip》是一个包含与Galil控制器相关的编程示例和MinGW编译环境的压缩文件。这个资源对于学习和使用微敏自控系统的开发者来说,是一个宝贵的资料库。下面将详细阐述其中的核心...

    上海微敏自控Galil_gclib_范例C#.NET.zip

    《上海微敏自控Galil_gclib_范例C#.NET》压缩包是一个针对Galil运动控制器编程的资源集合,特别适用于C#.NET开发者。这个包提供的内容旨在帮助程序员理解和掌握如何使用Galil_gclib库进行C#编程,以实现对Galil控制...

    galil gclib的示例代码

    **Galil GCLib 示例代码详解** 在自动化控制领域,Galil 控制器因其高效、精确的运动控制而被广泛使用。Galil 提供了一套名为 GCLib 的软件库,便于开发者通过编程来操控 Galil 运动控制器。本篇将深入探讨在 ...

    上海微敏自控Galil_gclib_范例VB.zip

    《上海微敏自控Galil_gclib_范例VB》是针对自动化控制领域的一款重要资源,它包含了一系列使用VB(Visual Basic)编程语言与Galil运动控制器进行交互的示例代码和说明文档。该资源对于熟悉和掌握如何在VB环境中控制...

    上海微敏自控Galil_gclib_范例gcc(Linux).zip

    上海微敏自控Galil_gclib_范例gcc(Linux)zip,提供“上海微敏自控Galil_gclib_范例gcc(Linux)”免费资料下载,主要包括gcc(Linux)的编程说明、范例等内容,可供编程学习使用。。

    上海微敏自控Galil_gclib_C API手册(英文).zip

    上海微敏自控Galil_gclib_C API手册(英文)zip,提供“上海微敏自控Galil_gclib_C API手册(英文)”免费资料下载,主要包括gclib在多种操作系统下的安装说明、可支持多种编程语言、数据结构指数、文件等内容,可供...

    上海微敏自控Galil_gclib_范例Microsoft Visual Studio.zip

    上海微敏自控Galil_gclib_范例Microsoft Visual Studiozip,提供“上海微敏自控Galil_gclib_范例Microsoft Visual Studio”免费资料下载,主要包括Microsoft Visual Studio的编程说明、范例等内容,可供编程学习使用...

    gclib的工具库

    安装gcc时候的工具包。安装方法:rpm -ivh glibc-2.12-1.80.el6.i686.rpm

    上海微敏自控Galil_gclib_范例Borland C .zip

    上海微敏自控Galil_gclib_范例Borland C zip,提供“上海微敏自控Galil_gclib_范例Borland C ”免费资料下载,主要包括Borland C 的编程说明、范例等内容,可供编程学习使用。

    Cglib Demo

    3. **生成代理对象**:最后,调用Enhancer.create()方法,即可生成目标类的代理对象。这个代理对象在运行时实际上是目标类的子类,它会覆盖目标类的方法,并在调用方法时执行我们定义的拦截逻辑。 Cglib中的核心...

    上海微敏自控Galil_gclib_范例clang(OS X).zip

    上海微敏自控Galil_gclib_范例clang(OS X)zip,提供“上海微敏自控Galil_gclib_范例clang(OS X)”免费资料下载,主要包括clang(OS X)的编程说明、范例等内容,可供编程学习使用。

    最新版本的cglib.zip

    CGLIB,全称为Code Generation Library,是一个强大的Java字节码操控和动态代理框架。它主要被用来在运行期扩展Java类与实现Java接口,同时也为许多其他Java库提供了底层支持,比如Spring AOP和Hibernate。最新版本...

    galil板卡API使用说明

    有时可能需要重新编译gclib,这通常是在修改源代码或升级依赖库后进行。 ##### 4.6 Software Licenses Galil API提供了两种许可模式: - **Closed Source License**:适用于商业用途。 - **Open Source License**:...

    gclib-utils

    "gclib-utils"是一个基于JavaScript的通用实用程序库,主要设计用于提高开发效率和代码复用性。这个库包含了各种常见的工具函数,可以帮助开发者在处理日常编程任务时更加便捷。由于标签中提到了"TypeScript",我们...

    cglib-2.2-18.el7.noarch.rpm

    离线安装包,亲测可用

    人工智能-项目实践-C#-基于C#.NET的多平台对话机器人处理框架.zip

    当前主流的机器人核心框架不能直接进行C#的插件开发,并且想要开发非常复杂的插件功能并不是很好实现。 出于为了给这种状况提供一个解决方案的目的,我开发了此框架。 在这个项目下,你可以用C#非常快捷的进行回复...

    linux之centos7安装nodejs20的版本升级之路相关依赖包

    升级gcc以及gclib相应的依赖包下载

Global site tag (gtag.js) - Google Analytics