Spring HTTP Invoker

发布时间 2023-09-13 09:50:20作者: hasome

参考:https://blog.csdn.net/asdluoliu/article/details/112847699

概念

Spring HTTP Invoker一种JAVA远程方法调用框架实现,原理与JDK的RMI基本一致,所以我们先跟其它JAVA远程方法调用实现做下简单比较。

  • RMI:使用JRMP协议(基于TCP/IP),不允许穿透防火墙,使用JAVA序列化方式,使用于任何JAVA应用之间相互调用。
  • Hessian:使用HTTP协议,允许穿透防火墙,使用自己的序列化方式,支持JAVA、C++、.Net等跨语言使用。
  • Burlap: 与Hessian相同,只是Hessian使用二进制传输,而Burlap使用XML格式传输(两个产品均属于caucho公司的开源产品)。
  • Spring HTTP Invoker: 使用HTTP协议,允许穿透防火墙,使用JAVA序列化方式,但仅限于Spring应用之间使用,即调用者与被调用者都必须是使用Spring框架的应用。

既然是通过HTTP请求调用,那么客户端肯定需要一个代理用于帮忙发送HTTP请求,帮忙做对象系列化和反系列化等,Spring框架中的HttpInvokerProxyFactoryBean类处理这些杂事;

而服务器端需要一个HTTP请求处理器,帮忙处理HTTP请求已经对象系列化和反系列化工作,Spring框架中的HttpInvokerServiceExporter类就是干这活的,对于Sun JRE 6 的HTTP Server,Spring还提供了SimpleHttpInvokerServiceExporter类供选择。