java中的代理是什么意思?

Python011

java中的代理是什么意思?,第1张

代理模式在设计模式中的定义就是:为其他对象提供一种代理以控制对这个对象的访问。说白了就是,在一些情况下客户不想或者不能直接引用一个对象,而代理对象可以在客户和目标对象之间起到中介作用,去掉客户不能看到的内容和服务或者增添客户需要的额外服务。

java动态代理主要是通过Proxy类的newProxyInstance()方法,该方法需要三个参(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h),其中分别为:

①:该对象的类加载器classloader

②:被代理类的类对象

③:一个InvocationHandler 处理器接口

InvocationHandler中有一个方法:invoke(Object proxy, Method method, Object[] args) ,通过显式调用可以实现对代理对象的类方法进行操作,这里主要是采用反射的原理,SrpingAop就是利用这一点进行实现的。