静态代理和jdk动态代理

什么是代理

就好比于中介 让客户端通过代理对象访问目标对象

这样做的好处是在目标对象实现的基础上 增强额外功能的操作

什么是静态代理

静态代理中,我们对目标对象的每个方法的增强都是手动完成的, 从 JVM 层面来说, 静态代理在编译时就将接口、实现类、代理类这些都变成了一个个实际的 class 文件。
      静态代理实现步骤: 
1,定义一个接口及其实现类;
2,创建一个代理类同样实现这个接口
3,将目标对象注注入进代理类,然后在代理类的对应方法调用目标类中的对应方法。

什么是动态代理

动态代理: (java中动态代理有两种实现方式  JDK动态代理, CGLIB动态代理 )
    JDK动态代理实现步骤:(在java类中只有实现了接口,才能使用JDK动态代理)
定义一个接口及其实现类;
自定义 InvocationHandler 并重写invoke方法,在 invoke 方法中我们会调用原生方法(被代理类的方法)并自定义一些处理逻辑;
通过 Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h) 方法创建代理对象;
通过一个接口创建多个代理类

动态代理步骤:
1.创建一个实现接口InvocationHandler的类,它必须实现invoke方法
2.创建被代理的类以及接口
3.通过Proxy的静态方法
newProxyInstance(ClassLoaderloader, Class[] interfaces, InvocationHandler h)创建一个代理
4.通过代理调用方法
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值