0

我有两个 webapps 旨在通过 JSON 公开宁静的服务,它们都是使用 SpringMVC + Jackson 用 Ja​​va 编写的。

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

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

@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 将 POST 从 ProxyController 触发到 BackendController,我想它会很有效。

我想知道是否有人会想出一个更好的主意。有谁知道 SpringMVC 是否会让生活变得更轻松一些?

非常感谢您的任何评论

4

1 回答 1

0

I went by JB Nizet's suggestion and it looks way better! Thanks a lot for the suggestion!

Here's the final code:

public class ProxyController {
    public DownloadResponse download() {
        RestTemplate template = new RestTemplate();
        return template.postForObject("http://<backend-url>/rest/download.do", request, DownloadResponse.class);
    }
}
于 2013-07-18T13:34:07.327 回答