我想知道在 Spring 中使用 Callable 使用 @Async 和 Servlet 3 异步请求实现的一般用例。
据我了解,@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";
}
};
}
我对何时使用什么感到困惑。一起使用异步 servlet/controller 和 spring @Async 会有什么影响?