美文网首页
Java Proxy 和 CGLIB 动态代理原理

Java Proxy 和 CGLIB 动态代理原理

作者: 浪白条 | 来源:发表于2019-05-04 11:06 被阅读0次

Java Proxy

首先实现一个InvocationHandler,方法调用会被转发到该类的invoke()方法。

然后在需要使用Hello的时候,通过JDK动态代理获取Hello的代理对象。

// Java Proxy

// 1. 首先实现一个InvocationHandler,方法调用会被转发到该类的invoke()方法。

classLogInvocationHandler implementsInvocationHandler{

    ...

    privateHello hello;

    publicLogInvocationHandler(Hello hello) {

        this.hello = hello;

    }

    @Override

    publicObject invoke(Object proxy, Method method, Object[] args) throwsThrowable {

        if("sayHello".equals(method.getName())) {

            logger.info("You said: "+ Arrays.toString(args));

        }

        returnmethod.invoke(hello, args);

    }

}

// 2. 然后在需要使用Hello的时候,通过JDK动态代理获取Hello的代理对象。

Hello hello = (Hello)Proxy.newProxyInstance(

    getClass().getClassLoader(), // 1. 类加载器

    newClass<?>[] {Hello.class}, // 2. 代理需要实现的接口,可以有多个

    newLogInvocationHandler(newHelloImp()));// 3. 方法调用的实际处理者

System.out.println(hello.sayHello("I love you!"));

http://www.importnew.com/27772.html

相关文章

  • Java 代理

    静态代理 动态代理 JDK 提供的Proxy CGLib cglib | GitHub 参考文章 Java的三种代理模式

  • Java Proxy 和 CGLIB 动态代理原理

    动态代理在Java中有着广泛的应用,比如Spring AOP,Hibernate数据查询、测试框架的后端mock、...

  • Java Proxy和CGLIB动态代理原理

    如果觉得再简述上阅读代码太困难可以点这里:Spring中动态代理详解 动态代理在Java中有着广泛的应用,比如Sp...

  • Java Proxy 和 CGLIB 动态代理原理

    Java Proxy 首先实现一个InvocationHandler,方法调用会被转发到该类的invoke()方法...

  • Java Proxy 和 CGLIB 动态代理原理

    动态代理在 Java 中有着广泛的应用,比如 Spring AOP,Hibernate 数据查询、测试框架的后端 ...

  • 六大原则 动态代理

    参考 六大原则 代理模式 介绍了三种代理:静态代理、Proxy、cglib java 动态代理详解介绍了动态代理具...

  • 脉脉&转转面试小结

    转转面试 (一面凉)时间: 2019.08.011 java aop原理以及用法 + java动态代理和cglib...

  • JDK和CGLIB动态代理区别

    JDK和CGLIB动态代理区别 一 JDK和CGLIB动态代理原理1、JDK动态代理利用拦截器(拦截器必须实现In...

  • 浅谈cglib动态代理

    cglib的使用与解析 上一篇讲解了java原生的动态代理的使用和部分原理,除了原生的动态代理很多java框架中使...

  • 动态代理

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

网友评论

      本文标题:Java Proxy 和 CGLIB 动态代理原理

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