代理机制

前言

代理机制是指给某个对象提供一个代理对象,通过代理对象来对这个对象进行引用并对一些方法进行增强。可以理解为结婚事件:
结婚的人只需要进行结婚的操作(委托类),其余的布置场地等操作交给婚庆公司来做(增强),在代理类(婚庆公司)执行代理方法时(结婚的操作)就完成了增强以及被委托的方法(布置场地等等一些准备操作-结婚-结束结婚)。

按照代理的创建时期可以分为静态代理和动态代理。

静态代理

静态代理在我们写好代码并进行编译后就生成了静态代理类.class文件。JVM通过加载这个.class文件来加载我们的代理类。

静态代理需要的是一个接口代理类和委托类都需要实现这个接口,在代理类中委托类会被当成一个成员。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态代理模式

动态代理模式一个是JDKProxy一个是CGlibProxy。
1.原生JDK代理:
①代理的是一个实现某个接口的类(必须要有接口)
②产生的代理对象类型是接口类型
③代理对象只能调用接口中的方法

2.CGlibProxy,需要导包。
①无需有接口,只需要一个实现类
②能够执行的方法全部都在实现类中,能够随时添加

对于JDK代理只需要调用Proxy类的newnewProxyInstance并实现InvocationHandler接口,在方法执行前可以增加前置拦截,方法执行
后增加后置拦截。当然可以增加其他增强。
在这里插入图片描述

对于CGlibProxy需要生成一个enhancer,设置enhancer的superClass以及设置callBack方法实现MethodInteMethodInterceptor方法,并返回enhancer.create()方法即可
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值