拦截
所有的 HandlerMapping
实现都支持处理器拦截,这在您希望跨请求应用功能时非常有用。HandlerInterceptor
可以实现以下功能:
-
preHandle(..)
— 在实际处理器运行之前调用的回调,返回一个布尔值。如果方法返回true
,则执行继续;如果返回false
,则绕过其余的执行链,并且不调用处理器。 -
postHandle(..)
— 在处理器运行之后调用的回调。 -
afterCompletion(..)
— 在整个请求完成之后调用的回调。
对于 |
有关如何配置拦截器的示例,请参阅 MVC 配置章节中的 拦截器。您也可以通过在各个 HandlerMapping
实现上使用设置器直接注册它们。
由于可能与带注解的控制器路径匹配不一致,拦截器并非理想的安全层。通常,我们建议使用 Spring Security,或者采用与 Servlet 过滤器链集成的类似方法,并尽早应用。