Когда использовать Spring @Async против Callable контроллера (асинхронный контроллер, сервлет 3)

Я хотел бы знать общий пример использования асинхронного выполнения запросов @Async и Servlet 3 в Spring с использованием Callable.

Как я понимаю, @Async предназначен для выполнения любого метода (в частности, любого сервисного метода) асинхронно.

@Async
void doSomething(String s) {
// this will be executed asynchronously
}

и любой контроллер, который возвращает Callable

  @RequestMapping("/view")
public Callable<String> callableWithView(final Model model) {
    return new Callable<String>() {
        @Override
        public String call() throws Exception {
            Thread.sleep(2000);
            model.addAttribute("foo", "bar");
            model.addAttribute("fruit", "apple");
            return "views/html";
        }
    };
}

Я не знаю, когда что использовать. Каков будет эффект от использования асинхронного сервлета / контроллера и вместе с пружиной @Async?

Ответы на вопрос(2)

Ваш ответ на вопрос