Callable を使用して Spring で @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";
}
};
}
いつ何を使うか迷っています。非同期サーブレット/コントローラーとスプリング @Async を一緒に使用すると、どのような影響がありますか?