Java tutorial
/** * Copyright (c) 2005-2012 https://github.com/zhangkaitao * * Licensed under the Apache License, Version 2.0 (the "License"); */ package com.sishuok.chapter3.web.interceptor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.request.async.DeferredResult; /** * * ?springmvc-config.xmlmvc:deferred-result-interceptors * * <p>User: Zhang Kaitao * <p>Date: 13-7-18 ?9:16 * <p>Version: 1.0 */ @Controller public class MyDefferedResultController { @RequestMapping("/myDefferedResult1") @ResponseBody public DeferredResult<String> myDefferedResult1() { final DeferredResult<String> result = new DeferredResult<String>(); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(2 * 1000L); } catch (InterruptedException e) { } System.out.println("DeferredResult?"); result.setResult("success"); } }).start(); return result; } @RequestMapping("/myDefferedResult2") @ResponseBody public DeferredResult<String> myDefferedResult2() { final DeferredResult<String> result = new DeferredResult<String>(); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(31 * 1000L); } catch (InterruptedException e) { } System.out.println( "DeferredResult????"); result.setResult("success"); } }).start(); return result; } }