Java代理

  • 介绍

Java中的代理在某些场合下显得非常有用,可以让Java不再被束缚到一个class类文件中,比如:一个Java进程想调用另一个Java进程中的类(class)貌似是不可能的事情。是Java的代理让这变成了可能,究其原理其实也很简单——一个Java类的最本质就是一个字节码文件,只要是能在本地的JVM中制造出一个相同的字节码文件不就可以调用了吗?

代理和反射是息息相关的,所以有关代理最重要的一个类就是java.lang.reflect.Proxy。

java.lang.reflect.InvocationHandler

Proxy.newProxyInstance(classLoader, interfacesList, proxyHandler)这个方法会返回生成的代理对象。

classLoader是定义了Proxy类的类加载器

interfacesList是代理类需要实现的接口列表,也就是被代理对象实现的接口

proxyHandler是接口InvocationHandler的实现类的实例对象

  • 示例

这里讲到的代理,只是同一工程或者模块级别的代理,这里还有一种更酷的代理——JVM代理

Java的动态代理技术,请参考《CgLib介绍》。

  • 参考

本文为原创,如果您当前访问的域名不是surenpi.com,请访问“素人派”。

发表评论

电子邮件地址不会被公开。 必填项已用*标注