Interception
所有 HandlerMapping
实现都支持处理程序拦截,这在想要在多个请求中应用功能时非常有用。HandlerInterceptor
可以实现以下功能:
-
preHandle(..)
—— 在实际处理程序运行前返回一个布尔值的回调。如果方法返回true
,执行继续;如果返回false
,则绕过执行链的其余部分并且不调用处理程序。 -
postHandle(..)
—— 在处理程序运行后返回一个布尔值的回调。 -
afterCompletion(..)
—— 在整个请求完成之后运行的回调。
对于 |
有关配置拦截器的示例,请参阅 MVC 配置部分中的 Interceptors。您还可以通过对各个 HandlerMapping
实现使用 setter 直接注册它们。
由于可能与带注释的控制器路径匹配不匹配,因此拦截器不适合作为安全层。通常,我们建议使用 Spring Security,或将类似的方法与 Servlet 过滤器链集成并尽早应用。