cglib使用文档

cglib简介

GitHub:https://github.com/cglib/cglib/

cglib是一款开源的动态代理库,与JDK动态代理基于接口的代理机制不同,cglib通过为被代理的类生成一个子类并重写被代理的方法实现代码的动态植入。

因此,cglib无法代理被final修饰的类或方法以及静态方法。

cglib的官方介绍如下:

cglib - Byte Code Generation Library is high level API to generate and transform Java byte code. It is used by AOP, testing, data access frameworks to generate dynamic proxy objects and intercept field access.

cglib导入依赖

通过查看cglib项目的pom.xml文件,可以发现cglib内部依赖了ams.jar,因此除了导入cglib.jar还需要导入ams.jar,使用Maven导入或下载相应的jar包即可。

<dependencies>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>cglib</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>${asm.version}</version>
    </dependency>
</dependencies>

cglib基本用法

以下是cglib的基本用法,更详细的用法请参阅官方案例。

// 1. 创建Enhancer对象
Enhancer enhancer = new Enhancer();
// 2. 指定父类Class对象
enhancer.setSuperclass(Person.class);
// 3. 设置方法拦截回调
enhancer.setCallback(new MethodInterceptor() {
    @Override
    public Object intercept(Object object, Method method, Object[] args, MethodProxy proxy) {
        // before...
        Object result = proxy.invokeSuper(object, args);
        // after..
        return result;
    }
});
// 4. 创建被代理的对象
Person person = (Person) enhancer.create();
person.speak();

总结

cglib基于AMS框架实现,是JDK动态代理的有效补充,可以用于AOP编程,比如日志打印、安全控制、统一鉴权等。

因为AMS框架是基于.class字节码的,因为无法用于android平台。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 8,147评论 0赞 10
  • The byte code instrumentation library cglib is a popular ...
    MaxZing阅读 1,952评论 1赞 2
  • 简介 cglib是一套java动态代理实现框架,cglib被应用到spring app,hibernate等高级业...
    coderljx阅读 1,630评论 0赞 0
  • Java技术版图-awesome-java aewsome-java是github上一个开源项目,搜集Java各领...
    静默虚空阅读 4,729评论 0赞 44
  • 人生旅途,漫漫长路。我的路,就在脚下……强者,路,就在自己的脚下延伸……通往顶峰的路,不仅只是在前进的旅途中,...
    圣境王立胜阅读 268评论 0赞 0

友情链接更多精彩内容