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

Java tutorial

Introduction

Here is the source code for com.sishuok.chapter3.web.interceptor.MyDeferredResultInterceptor.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.web.context.request.NativeWebRequest;
import org.springframework.web.context.request.async.DeferredResult;
import org.springframework.web.context.request.async.DeferredResultProcessingInterceptorAdapter;

/**
 * <p>User: Zhang Kaitao
 * <p>Date: 13-7-18 ?9:10
 * <p>Version: 1.0
 */
public class MyDeferredResultInterceptor extends DeferredResultProcessingInterceptorAdapter {

    @Override
    public <T> void beforeConcurrentHandling(final NativeWebRequest request, final DeferredResult<T> deferredResult)
            throws Exception {
        System.out.println("=====startAsyc??");
    }

    @Override
    public <T> void preProcess(final NativeWebRequest request, final DeferredResult<T> deferredResult)
            throws Exception {
        //??Callable beforeConcurrentHandling?
        System.out.println("startAsyc??");
    }

    @Override
    public <T> void postProcess(final NativeWebRequest request, final DeferredResult<T> deferredResult,
            final Object concurrentResult) throws Exception {
        // DeferredResult.setResult(Object)  DeferredResult#setErrorResult(Object) ?
        System.out.println("DeferredResult?");

    }

    @Override
    public <T> boolean handleTimeout(final NativeWebRequest request, final DeferredResult<T> deferredResult)
            throws Exception {
        System.out.println("");
        deferredResult.setErrorResult("error");//
        return true; //return true ?handleTimeout?
    }

    @Override
    public <T> void afterCompletion(final NativeWebRequest request, final DeferredResult<T> deferredResult)
            throws Exception {
        System.out.println("?");
    }
}