An async scenario starts with request processing as usual in a thread (T1). Concurrent request handling can be innitiated by calling {@linkplain #startCallableProcessing(Callable,Object) startCallableProcessing} or{@linkplain #startDeferredResultProcessing(DeferredResult,Object) startDeferredResultProcessing}both of which produce a result in a separate thread (T2). The result is saved and the request dispatched to the container, to resume processing with the saved result in a third thread (T3). Within the dispatched thread (T3), the saved result can be accessed via {@link #getConcurrentResult()} or its presencedetected via {@link #hasConcurrentResult()}. @author Rossen Stoyanchev @since 3.2 @see org.springframework.web.context.request.AsyncWebRequestInterceptor @see org.springframework.web.servlet.AsyncHandlerInterceptor @see org.springframework.web.filter.OncePerRequestFilter#shouldNotFilterAsyncDispatch @see org.springframework.web.filter.OncePerRequestFilter#isAsyncDispatch
|
|