Spring MVC
@Controllerpublic 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; }}