jdk动态代理

Java动态代理类位于java.lang.reflect包下,一般主要涉及以下两个类:
(1)Interface InvocationHandler:该接口中仅定义了一个方法
         public object invoke(Object proxy,Method method,Object[] args)
在实际使用时,第一个参数proxy一般是指代理类对象,method是被代理的方法,args为该方法的参数数组。这个抽象方法在代理类中动态实现。
 
(2)Proxy:该类即为动态代理类
static Object newProxyInstance(ClassLoader loader(目标类的类装载器),Class[] interfaces(目标类的接口),InvocationHandler h):返回代理类的一个实例,返回后的代理类可以当作被代理类使用(可以使用被代理类在接口中声明过的方法)。
 
当客户端调用代理类对象的方法的时候,会调用invoke()回调方法,将其委派给目标对象,并在此基础上进行增强。
 
 
jdk动态代理只能代理实现了接口的类,没有实现接口的类,不能实现jdk的动态代理。
 
 
 
CGLIB动态代理:针对类来实现代理,对指定目标类产出一个子类,通过方法拦截技术拦截所有父类方法的调用,然后覆盖其中的方法,实现功能的增强。

转载于:https://www.cnblogs.com/james111/p/6607363.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值