源码:
- /**
- * Workflow interface that allows for customized handler execution chains.
- * Applications can register any number of existing or custom interceptors
- * for certain groups of handlers, to add common preprocessing behavior
- * without needing to modify each handler implementation.
- *
- * <p>A HandlerInterceptor gets called before the appropriate HandlerAdapter
- * triggers the execution of the handler itself. This mechanism can be used
- * for a large field of preprocessing aspects, e.g. for authorization checks,
- * or common handler behavior like locale or theme changes. Its main purpose
- * is to allow for factoring out repetitive handler code.
- *
- * <p>In an asynchronous processing scenario, the handler may be executed in a
- * separate thread while the main thread exits without rendering or invoking the
- * {@code postHandle} and {@code afterCompletion} callbacks. When concurrent
- * handler execution completes, the request is dispatched back in order to
- * proceed with rendering the model and all methods of this contract are invoked
- * again. For further options and details see
- * {@code org.springframework.web.servlet.AsyncHandlerInterceptor}
- *
- * <p>Typically an interceptor chain is defined per HandlerMapping bean,
- * sharing its granularity. To be able to apply a certain interceptor chain
- * to a group of handlers, one needs to map the desired handlers via one
- * HandlerMapping bean. The interceptors themselves are defined as beans
- * in the application context, referenced by the mapping bean definition
- * via its "interceptors" property (in XML: a <list> of <ref>).
- *
- * <p>HandlerInterceptor is basically similar to a Servlet Filter, but in
- * contrast to the latter it just allows custom pre-processing with the option
- * of prohibiting the execution of the handler itself, and custom post-processing.
- * Filters are more powerful, for example they allow for exchanging the request
- * and response objects that are handed down the chain. Note that a filter
- * gets configured in web.xml, a HandlerInterceptor in the application context.
- *
- * <p>As a basic guideline, fine-grained handler-related preprocessing tasks are
- * candidates for HandlerInterceptor implementations, especially factored-out
- * common handler code and authorization checks. On the other hand, a Filter
- * is well-suited for request content and view c