一个控制器可以用 java.util.concurrent.Callable来包装任何支持的返回值,正如下面的例子所示:

    1. @PostMapping
    2. public Callable<String> processUpload(final MultipartFile file) {
    3. return new Callable<String>() {
    4. public String call() throws Exception {
    5. // ...
    6. return "someView";
    7. }
    8. };
    9. }

    然后可以通过 配置 的 TaskExecutor 运行给定的任务来获得返回值。