`

java Cglib的应用

阅读更多
  java中简单使用CGLIB实现AOP的切面编程
package ppfuns.cglib;

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

import java.lang.reflect.Method;

/**
 * Created with IntelliJ IDEA.
 * Date: 2018/1/12
 * Time: 11:11
 * To change this template use File | Settings | File Templates.
 */
public class EnhancerDemo {

    public static void main(String[] args) {
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(EnhancerDemo.class);
        enhancer.setCallback(new MethodInterceptorImpl());
        EnhancerDemo demo = (EnhancerDemo) enhancer.create();
        demo.test();
        System.out.println(demo);
    }
    public void test(){
        System.out.println("正在测试:"+EnhancerDemo.class.getName());
    }
}
class MethodInterceptorImpl implements MethodInterceptor{
    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
        System.out.println("before test....."+method.getName());
        Object t =  methodProxy.invokeSuper(o,objects);
        System.out.println("after test ...."+method.getName());
        return t;
    }
}


结果:
before test.....test
正在测试:ppfuns.cglib.EnhancerDemo
after test ....test
before test.....toString
before test.....hashCode
after test ....hashCode
after test ....toString
ppfuns.cglib.EnhancerDemo$$EnhancerByCGLIB$$fdf1bbc4@6ae40994

Process finished with exit code 0
分享到:
评论

相关推荐

    java cglib和反射demo

    Java中的CGLib与反射是两种常用的...总的来说,CGLib和反射各有优势,选择哪种取决于具体应用场景。在实际开发中,两者也常被结合使用,以达到最佳效果。了解并熟练掌握这两种技术,对于提升Java开发能力具有重要意义。

    cglib动态生成java类

    CGLib,全称为Code Generation Library,是一个强大的高性能的代码生成库,它在运行期扩展Java类与实现Java接口。在Java编程中,我们有时需要在运行时动态地创建或修改类,CGLib就是为此目的而设计的。它广泛应用于...

    Java cglib实例代码

    在 AOP 中, Log Aspect 是一个常见的应用,CGLib 使得 Log Aspect 的实现变得很简单。可以通过创建一个 LogDAOProxy 类,实现 MethodInterceptor 接口,生成一个 DAO 的子类,并且设置好 callback 到 proxy。然后,...

    Java动态代理(JDK和cglib)

    ### Java动态代理(JDK和cglib) #### 一、代理模式概述 代理模式是一种结构型设计模式,其中代理类含有一个对真实主题对象的引用,这样代理对象就可以执行一些预备或清理工作,并将真正的调用传递给真实主题对象...

    java动态代理(JDK和cglib)共10页.pdf.z

    Java动态代理是Java编程中一...JDK动态代理适用于接口代理,简单易用,而CGLIB则适用于非接口类的代理,提供了更广泛的应用场景。理解并熟练掌握这两种动态代理机制,对于提升Java开发的灵活性和可维护性具有重要意义。

    java_cglib_lib.rar

    在实际应用中,CGlib不仅用于动态代理,还广泛用于其他领域,如性能监控、测试工具、日志插桩等。了解并掌握CGlib对于深入理解Java字节码操作和AOP编程具有重要意义。通过熟练使用CGlib,开发者可以在不修改源码的...

    CGLib字节码增强实现代理原理(附源码下载)

    CGLib,全称为Code Generation Library,是一个强大的Java字节码操作框架,广泛应用于动态代理、AOP(面向切面编程)等领域。它允许开发者在运行时动态地创建类的子类,以此来实现对已有类的方法进行增强或扩展。在...

    java(cglib)动态代理样例

    CGlib(Code Generation Library)是Java中实现动态代理的一种常见方式,特别是在Java代理接口不适用或者目标类没有实现任何接口的情况下。 动态代理的主要应用场景包括日志记录、性能监控、事务管理、权限控制等。...

    CGLib3.2.5依赖包及源码

    CGLib,全称为Code Generation Library,是一个强大的Java字节码操作库,广泛应用于动态代理、AOP(面向切面编程)以及性能优化等领域。它允许开发者在运行时创建和增强新的类或对象,而无需编写任何Java源代码。...

    cglib和asm

    CGlib和ASM是Java开发中两个非常重要的库,主要用于字节码操作和动态代理。这两个库在Java生态系统中扮演着不可或缺的角色,特别是在AOP(面向切面编程)和ORM(对象关系映射)框架中。 CGlib是一个强大的、高性能...

    Java JDK代理、CGLIB、AspectJ代理分析比较

    ### Java代理技术详解:JDK代理、CGLIB与AspectJ #### 一、代理模式简介 代理模式是一种常见的设计模式,在《Design Patterns in Java》一书中对其有明确的定义:“代理模式为一个对象提供一个代理,以控制对该...

    CGLIB依赖jar包

    CGLIB,全称为Code Generation Library,是一个强大的高性能的代码生成库,它在Java世界里被广泛应用,尤其是在Spring框架中。CGLIB是基于ASM(一个底层的Java字节码操作和分析框架)来实现的,它允许开发者在运行时...

    cglib_cglib3.2_remain3gr_cglibjar包_cglib.jar_

    总的来说,CGLib作为一个强大的字节码生成库,广泛应用于AOP(面向切面编程)、ORM框架(如Hibernate)、测试工具(如Mockito)等领域,提供了对Java类的灵活扩展和控制。正确理解和使用CGLib,能极大地提升开发效率...

    cglib.jar下载

    三、CGLIB的应用 广泛的被许多AOP的框架使用,例如Spring AOP和dynaop。Hibernate使用CGLIB来代理单端single-ended(多对一和一对一)关联。 四、CGLIB的API 1、Jar包: cglib-nodep-2.2.jar:使用nodep包不需要...

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

    CGLIB,全称为Code Generation Library,是一个强大的高性能的代码生成库,被广泛应用于Java世界,尤其是Spring框架中。它允许程序在运行时动态地创建Java对象并扩展已有类的功能。CGLIB是通过字节码技术实现的,而...

    cglib-3.2.7.jar

    其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)

    Cglib3.3.0最新版jar包

    Cglib是一个强大的、高性能的代码生成库,它在Java世界中被广泛应用,尤其是在动态代理和AOP(面向切面编程)领域。Cglib3.3.0是该库的最新版本,提供了两个jar包:`cglib-3.3.0.jar`和`cglib-nodep-3.3.0.jar`。 1...

    cglib完美支持java17及以上

    CGlib,全称为Code Generation Library,是一个强大的Java字节码操控和动态代理框架。它主要为Java应用程序提供一种方式来动态地生成子类,从而扩展已有类的功能或为已有的类添加新的行为。CGlib是许多其他流行框架...

    cglib的依赖包

    总结来说,CGlib是一个强大且灵活的Java代码生成库,它简化了字节码操作,为开发人员提供了动态创建类和方法的能力,尤其在实现动态代理和AOP场景中有着广泛的应用。理解并掌握CGlib的使用,对于提升Java开发效率和...

Global site tag (gtag.js) - Google Analytics