美文网首页
动态代理原理

动态代理原理

作者: wangliang0209 | 来源:发表于2016-10-13 14:55 被阅读0次

动态代理其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class,该class会继承Proxy类,并实现所有你指定的接口(您在参数中传入的接口数组);然后再利用您指定的classloader将class加载进系统,最后生成这样一个类的对象,并初始化该对象的一些值,如invocationHandler,以即所有的接口对应的Method成员。 初始化之后将对象返回给调用的客户端。这样客户端拿到的就是一个实现你所有的接口的Proxy对象

  • 业务接口类
public interface BusinessInterface {
      public void processBusiness();
}
  • 业务实现类
public class BusinessImpl implements BusinessInterface {
      @override
      public  void processBusiness() {
           System.out.println("执行业务");
      }
}
  • 业务代理类
public BusinessProcessorHandler implements InvocationHandler {
      private Object target;
      public void setTarget(Object target) {
              this.target = target;
      }

      public Object invoke(Object proxy, Method method, Object[] args)  throwsThrowable {  
          System.out.println("You can do something here before process your business");  
          Object result = method.invoke(target, args); 
          System.out.println("You can do something here after process your business");  
          return result; 
      }
}
  • 具体应用类(关键代码)
  public static void main(String[] args) { 
       BusinessInterface bi = new BusinessImpl();      
       BusinessProcessorHandler handler = new BusinessProcessorHandler(bi); 
       BusinessInterface bp = (BusinessInterface) Proxy.newProxyInstance(bpimpl.getClass().getClassLoader(), 
              bpimpl.getClass().getInterfaces(), handler); 
       bp.processBusiness();
 }

相关文章

  • 设计模式~代理模式

    学习代理模式内容: ★ 静态代理、 ★ 动态代理(JDK动态代理、CGLIB动态代理)、 ★ 拦截器的原理和日志记...

  • Java动态代理从入门到原理再到实战

    目录 前言 什么是动态代理,和静态代理有什么区别 Java动态代理的简单使用 Java动态代理的原理解读 动态代理...

  • 代理模式

    1.概念 2.静态代理 3.动态代理 3.1 JDK 动态代理 原理 手工模拟JDK动态代理 3.2cglib动态...

  • AOP——cglib动态代理源码解析

    上一篇分析了使用JDK动态代理的低层实现原理,这次再来看看cglib实现动态代理的原理。 关于JDK动态代理的实现...

  • java动态代理

    本文从四个方面认识动态代理 什么是代理? 为什么使用代理? 如何使用动态代理? 动态代理的原理 一 什么是代理 ...

  • JDK动态代理实践与原理

    本篇内容 介绍JDK动态代理的基本概念 一些JDK动态代理的疑问 JDK动态代理的Demo JDK动态代理的原理 ...

  • java基础巩固笔记(4)-代理

    标签: java Contents java基础巩固笔记(4)-代理概念动态代理创建动态类动态代理的工作原理面向切...

  • 动态代理(二)

    动态代理的原理 我们可以看到动态代理是根据反射实现的,那么我们可以自己实现动态代理吗? 1、每个动态代理的类都实现...

  • Java动态代理

    参考来源: Java动态代理视频 JDK动态代理实现原理 JDK Dynamic Proxies Building...

  • Spring学习系列--3.AOP

    Spring Aop Aop面向切面编程 Aop入门动态代理 动态代理,其实与Aop的原理有些相似,可以用动态代理...

网友评论

      本文标题:动态代理原理

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