要了解java动态代理的机制,首先需要了解一下相关的类或接口:
java.lang,reflect.Proxy: 这是java动态代理机制的主类,它提供了一组静态方法来为一组接口动态的生产代理类及其对象。
Proxy类的newProxyInstance方法可用于动态生产代理类及代理对象
static Object newProxyInsance(ClassLoader loader, Class[] interfaces,InvocationHandler h);
第一个参数:类加载器;第二个参数:被代理对象的接口信息;
第三个参数:java.lang,reflect.InvocationHandler:这是进行实际业务增强处理的类,它自定义了一个incoke方法,通常在该方法中实现对委托类的代理访问。
InvocationHandler的核心方法invoke方法,该方法负责集中处理动态代理类上的所有方法调用,
Object invoke(Object proxy,Method method,Object[] args):
第一个参数:动态生成代理类的实例;第二个参数:被代理对象当前正在执行的业务方法;第三个参数:被代理对象当前正在执行的业务方法中声明的参数。