美文网首页
spring中cglib代理的简单实现

spring中cglib代理的简单实现

作者: 张不二01 | 来源:发表于2017-07-17 17:04 被阅读42次

其实跟前一篇中的动态代理很相似,动态代理是实现同一个接口,而cglib代理是直接继承于被代理对象,是被代理对象的子类

代码如下:
Cat是被代理对象,内部又一个play方法

public class CglibProxy implements MethodInterceptor {
    public Cat getCatInterface(){
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(Cat.class);
        enhancer.setCallback(this);
        Cat cat = (Cat) enhancer.create();
        return cat;
    }

    public Object intercept(Object objProxy, Method method, Object[] params, MethodProxy methodProxy) throws Throwable {
        System.out.println("before");
        //注意这里是需要调用父类的方法而不是自身的方法
        methodProxy.invokeSuper(objProxy, params);
        System.out.println("after");
        return null;
    }
}

使用的时候

Cat cat = new CglibProxy().getCatInterface();
cat.play();

相关文章

  • Spring AOP的实现原理--CGLIB动态代理

    Spring AOP的实现原理--CGLIB动态代理 CGLIB(Code Generation Library)...

  • spring中cglib代理的简单实现

    其实跟前一篇中的动态代理很相似,动态代理是实现同一个接口,而cglib代理是直接继承于被代理对象,是被代理对象的子...

  • 2018-10-03

    Spring aop 是通过代理实现的,代理有静态代理,jdk动态代理和cglib动态代理,代理就像我们生活中的房...

  • Java Spring中的动态代理cglib

    总结 JDK的动态代理和 Spring中的动态代理cglib区别 JDK 的动态代理 :针对实现了接口的类产生代理...

  • spring 代理实现

    背景:动态代理 + cglib 代理 技巧:借助 spring 内置的 bean 对象实现代理创建比如内置的:Be...

  • 动态代理

    1.spring aopjdk动态代理:invocationHandler 和proxy,需要实现接口cglib动...

  • java-cglib

    简介 cglib是一套java动态代理实现框架,cglib被应用到spring app,hibernate等高级业...

  • SpringAOP源码解析过程

    spring的AOP基于JDK的动态代理和cglib实现,默认代理对象是某个接口的实现就会使用JDK动态代理,否则...

  • Spring Boot 2.5.x能支持Java 17了 - c

    在 Spring Framework 中,AOP 代理是 JDK 动态代理或 CGLIB 代理。 ASM 是 Ja...

  • java动态代理

    目录: 简介 jdk动态代理 cglib动态代理 jdk动态代理与cglib的区别 应用spring的aop 简介...

网友评论

      本文标题:spring中cglib代理的简单实现

      本文链接:https://www.haomeiwen.com/subject/qohqkxtx.html