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
分享到:
相关推荐
基于java的jdk动态代理, 比较了静态代理与动态代理的区别,以及动态代理的底层实现,反编译class文件 jdk动态代理和cglib的区别
上海微敏自控是一家专注于工业自动化领域的公司,其Galil_gclib库是为与Galil运动控制器进行通信而设计的。本资料包是针对Galil_gclib库的一个Python编程示例,对于想要利用Python控制Galil控制器的开发者来说极具...
《Galil GCLib 311:运动控制开发的核心工具》 Galil GCLib 311 是一套专为Galil运动控制器设计的全面开发资源库,它包括了DLL(动态链接库)、DOC(文档)、EXAMPLES(示例程序)、INCLUDE(头文件)、LIB(库文件...
《上海微敏自控Galil_gclib_范例MinGW.zip》是一个包含与Galil控制器相关的编程示例和MinGW编译环境的压缩文件。这个资源对于学习和使用微敏自控系统的开发者来说,是一个宝贵的资料库。下面将详细阐述其中的核心...
《上海微敏自控Galil_gclib_范例C#.NET》压缩包是一个针对Galil运动控制器编程的资源集合,特别适用于C#.NET开发者。这个包提供的内容旨在帮助程序员理解和掌握如何使用Galil_gclib库进行C#编程,以实现对Galil控制...
**Galil GCLib 示例代码详解** 在自动化控制领域,Galil 控制器因其高效、精确的运动控制而被广泛使用。Galil 提供了一套名为 GCLib 的软件库,便于开发者通过编程来操控 Galil 运动控制器。本篇将深入探讨在 ...
《上海微敏自控Galil_gclib_范例VB》是针对自动化控制领域的一款重要资源,它包含了一系列使用VB(Visual Basic)编程语言与Galil运动控制器进行交互的示例代码和说明文档。该资源对于熟悉和掌握如何在VB环境中控制...
上海微敏自控Galil_gclib_范例gcc(Linux)zip,提供“上海微敏自控Galil_gclib_范例gcc(Linux)”免费资料下载,主要包括gcc(Linux)的编程说明、范例等内容,可供编程学习使用。。
上海微敏自控Galil_gclib_C API手册(英文)zip,提供“上海微敏自控Galil_gclib_C API手册(英文)”免费资料下载,主要包括gclib在多种操作系统下的安装说明、可支持多种编程语言、数据结构指数、文件等内容,可供...
上海微敏自控Galil_gclib_范例Microsoft Visual Studiozip,提供“上海微敏自控Galil_gclib_范例Microsoft Visual Studio”免费资料下载,主要包括Microsoft Visual Studio的编程说明、范例等内容,可供编程学习使用...
安装gcc时候的工具包。安装方法:rpm -ivh glibc-2.12-1.80.el6.i686.rpm
上海微敏自控Galil_gclib_范例Borland C zip,提供“上海微敏自控Galil_gclib_范例Borland C ”免费资料下载,主要包括Borland C 的编程说明、范例等内容,可供编程学习使用。
3. **生成代理对象**:最后,调用Enhancer.create()方法,即可生成目标类的代理对象。这个代理对象在运行时实际上是目标类的子类,它会覆盖目标类的方法,并在调用方法时执行我们定义的拦截逻辑。 Cglib中的核心...
上海微敏自控Galil_gclib_范例clang(OS X)zip,提供“上海微敏自控Galil_gclib_范例clang(OS X)”免费资料下载,主要包括clang(OS X)的编程说明、范例等内容,可供编程学习使用。
CGLIB,全称为Code Generation Library,是一个强大的Java字节码操控和动态代理框架。它主要被用来在运行期扩展Java类与实现Java接口,同时也为许多其他Java库提供了底层支持,比如Spring AOP和Hibernate。最新版本...
有时可能需要重新编译gclib,这通常是在修改源代码或升级依赖库后进行。 ##### 4.6 Software Licenses Galil API提供了两种许可模式: - **Closed Source License**:适用于商业用途。 - **Open Source License**:...
"gclib-utils"是一个基于JavaScript的通用实用程序库,主要设计用于提高开发效率和代码复用性。这个库包含了各种常见的工具函数,可以帮助开发者在处理日常编程任务时更加便捷。由于标签中提到了"TypeScript",我们...
离线安装包,亲测可用
当前主流的机器人核心框架不能直接进行C#的插件开发,并且想要开发非常复杂的插件功能并不是很好实现。 出于为了给这种状况提供一个解决方案的目的,我开发了此框架。 在这个项目下,你可以用C#非常快捷的进行回复...
升级gcc以及gclib相应的依赖包下载