public interface AsyncHandlerInterceptor extends HandlerInterceptor
HandlerInterceptorwith a callback method invoked during asynchronous request handling.
When a handler starts asynchronous request handling, the DispatcherServlet
exits without invoking
afterCompletion, as it
normally does, since the results of request handling (e.g. ModelAndView)
will. be produced concurrently in another thread. In such scenarios,
afterConcurrentHandlingStarted(HttpServletRequest, HttpServletResponse, Object)
is invoked instead allowing implementations to perform tasks such as cleaning
up thread bound attributes.
When asynchronous handling completes, the request is dispatched to the
container for further processing. At this stage the DispatcherServlet invokes
afterCompletion as usual.
|Modifier and Type||Method and Description|
Called instead of
afterCompletion, postHandle, preHandle
void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
afterCompletion, when the a handler is being executed concurrently. Implementations may use the provided request and response but should avoid modifying them in ways that would conflict with the concurrent execution of the handler. A typical use of this method would be to clean thread local variables.
request- the current request
response- the current response
handler- handler (or
HandlerMethod) that started async execution, for type and/or instance examination
Exception- in case of errors