com.sishuok.chapter3.web.interceptor.MyDefferedResultController.java Source code

Java tutorial

Introduction

Here is the source code for com.sishuok.chapter3.web.interceptor.MyDefferedResultController.java

Source

/**
 * 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;
    }

}