代理有两种:静态代理和动态代理
静态代理:
在编译之前,就已经为目标类生成代理类。
动态代理:
在运行时刻,才确定目标类的代理类。
动态代理中重要的有两点:即,一个接口(InvocationHandler)和一个类(Proxy)类。
InvocationHandler的功能:通过反射的方式,实现目标代理方法执行前后的切面操作,实现代理功能。
Proxy类:代理类,代理方法之目录代理类方法的转换。
Proxy类中的几个重要方法:
1. Proxy.getProxyClass(ClassLoader loader, Class<?>... interfaces)
ClassLoader 加载标识代理类Class文件的类加载器,此方法返回java动态生成的代理类的Class对象,此代理对象继承Proxy接口,并实现了目标代理类的所有接口,