Spring Framework RestTemplate 代理方案

利用Spring Framework RestTemplate 做代理

今天我们会介绍如何使用Spring Framework 提供的 RestTemplate类做一层中间代理。

其实原理很简单,就是通过向目标服务器发送HTTP请求以实现远程调用的功能。

假设以下场景,我们正在运维一个图书馆管理系统,我们的数据库中存储了每一本书的书名和作者,但是在下次系统更新中我们期望还可以让用户们看到每本书的种类,可是我们库中没有储存有关书本种类的信息。

聪明的小明在去联系了书本供应商,发现他们也有一个系统,不光储存了书本种类,还有各种其他好玩的信息。

现在小明心中有两个方案,方案一是刷库,把供应商库里所需要的信息全部拉到自己的库里。方案二是让供应商为自己开一个接口,自己做一层代理,直接从供应商那里取数据。

第一种方案不光需要重构数据库,还要额外占用大量的硬盘资源,小明决定采用第二种方案。

以下为方案的详细说明:

供应商开放一个接口,接收http post请求,并返回有关书本的各种信息。

供应商接口接收Json String,读取数据并从数据库中查询数据,之后将查询到的数据封装进HashMap中,转换成Json并返回。

这样一来,我们需要做的仅仅是将想发送的数据转换成Json String并包在http请求正文里面,发给供应商再从那里拿回数据就可以了,这是一个经典的RPC - HTTP远程调用流程。

以下为小明的代码:


你可能感兴趣的:(Java,java,http,spring,boot,springmvc,rpc)