@Controller
public class MyController {
Logger logger = Logger.getLogger(MyController.class.getSimpleName());
@RequestMapping("test")
public
@ResponseBody
DeferredResult<String> handleTestRequest () {
logger.info("handler started");
final DeferredResult<String> deferredResult = new DeferredResult<>();
new Thread(() -> {
logger.info("async task started");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
logger.info("async task finished");
deferredResult.setResult("test async result");
}).start();
logger.info("handler finished");
return deferredResult;
}
}