Spring mvc并发请求处理

时间:2017-02-22 11:26:23

标签: java spring model-view-controller

有谁可以告诉我如何通过Spring mvc同时处理http请求? 我已经尝试使用CompletableFuture或DeferredResult,它允许我在另一个线程中处理请求,但下一个请求仍在等待,直到上一个完成。

我可能会错过什么?

控制器的方法:

@RequestMapping(value = "simple/async/cf", method = RequestMethod.GET)
public CompletableFuture<ResponseEntity<String>> simpleAsyncCf() {
    return CompletableFuture.runAsync(() -> sleep(1000))
            .thenApplyAsync(v -> ResponseEntity.ok(getRandomString()));
}


@RequestMapping(value = "simple/async/df", method = RequestMethod.GET)
public DeferredResult<ResponseEntity<String>> simpleAsyncDf() {
    DeferredResult<ResponseEntity<String>> result = new DeferredResult<>();
    CompletableFuture.runAsync(() -> sleep(1000))
            .thenApplyAsync(v -> result.setResult(ResponseEntity.ok(getRandomString())));
    return result;
}

0 个答案:

没有答案