按照代理的创建时间不同,可以分为两种:
静态代理:手动创建,再对其编译。在程序运行前,代理类的.class文件就已经存在。
动态代理:在程序运行时,通过反射机制动态创建而成。
动态代理
* 概述: 通过反射动态生成代理对象,通过代理对象调用委托类的方法.* 作用:代理类会对委托类的方法进行过滤
实现过程:
* Proxy类:
* newProxyInstance()
* invocationHandler接口:
* invoke(proxy对象,Method,对应方法的实参)
* 可以获取到对应委托类方法的参数.
* 阻止调用对应委托类的方法.
* 修改委托类方法的返回值.