如何在2个安静的应用程序之间建立通信?

时间:2013-07-17 20:34:28

标签: java json rest spring-mvc

我有两个webapps,旨在通过JSON公开restful服务,使用SpringMVC + Jackson用Java编写。

第一个应用程序更像是一个代理,只是将请求转发给第二个应用程序,它保存了真正的业务逻辑(不幸的是,我不允许放弃其中任何一个)。

宁静的端点看起来非常像这样:

@Controller
@RequestMapping("rest")
public class ProxyController {
    @RequestMapping(value = "download", method = RequestMethod.POST, produces="application/json", consumes="application/json")
    @ResponseBody
    public DownloadResponse download() {
        // invoke BackendController by some mean
    }
}

@Controller
@RequestMapping("rest")
public class BackendController {
    @RequestMapping(value = "download", method = RequestMethod.POST, produces="application/json", consumes="application/json")
    @ResponseBody
    public DownloadResponse download() {
        // do some business logic
        return new DownloadResponse();
    }
}

我的第一个想法是使用HttpClient从ProxyController触发POST到BackendController,我猜它会起作用。

我想知道是否有人想出更好的主意。有谁知道SpringMVC是否可以让生活更轻松一点?

非常感谢任何评论

1 个答案:

答案 0 :(得分:0)

我接受了JB Nizet的建议,看起来好多了!非常感谢你的建议!

这是最终的代码:

public class ProxyController {
    public DownloadResponse download() {
        RestTemplate template = new RestTemplate();
        return template.postForObject("http://<backend-url>/rest/download.do", request, DownloadResponse.class);
    }
}