hessian——客户端动态代理
客户端代码:
String urlString = "http://localhost/hessian/testService";HessianProxyFactory factory = new HessianProxyFactory();TestService testService = (TestService)factory.create(TestService.class,urlString);
?
public Object create(Class<?> api, URL url, ClassLoader loader) { if (api == null) throw new NullPointerException("api must not be null for HessianProxyFactory.create()"); InvocationHandler handler = null; handler = new HessianProxy(url, this, api); return Proxy.newProxyInstance(loader, new Class[] { api, HessianRemoteObject.class }, handler); }
?handler = new HessianProxy(url, this, api);是关键,利用java动态代理,创建了一个HessianProxy对象来代理对Service对象的方法调用,具体HessianProxy的代理方式就是通过网络连接,调用远程的方法(见