Я хотел бы узнать общий прецедент использования асинхронного запроса @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";
}
};
}
Я смущен, когда использовать что. Каким будет эффект использования асинхронного сервлета/контроллера и Spring @Async вместе?