侯玉林
1.什么是动态代理:主要用于增强类的方法中
方法增强的三种办法之一:
request中的方法的增强:
1.继承:能够控制这个类的构造.
2.装饰者:增强的类和被增强的类实现相同的接口,增强的类中获得到被增强的类的引用.
* 接口中方法过多,只增强其中的某个方法.其他的方法也需要重写.
3.动态代理 :被增强的类实现了接口.
2.代理的概述:
使用动态代理:Proxy.newProxyInstance();
3.代理的条件:
该增强的类至少实现了,一个或多个的接口
增强的方法必须是接口中的方法,实现类中的自己特有的方法无法增强.
4.如何实现代理:
实现流程:
1.通过interfaces接口的数组,虚拟机知道了要增强类的所有有实现接口,
进而知道该增强类所有接口的实现方法.
2.通过该接口数组,虚拟机会为该增强类创建一个实现了同样接口数组的
类,假设该类为增强类2.
3.增强类2中的所有的接口实现后的方法都默认调用invocationHandler ih
对象中的invoke方法. |