|
对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
拦截
都HandlerMapping实现支持处理程序拦截,这在
您希望跨请求应用功能。一个HandlerInterceptor可以实现
以后:
-
preHandle(..)— 回调,然后返回一个布尔值。 如果该方法返回true,执行继续;如果返回false,其余的 执行链被绕过,并且不会调用处理程序。 -
postHandle(..)— 处理程序运行后回调。 -
afterCompletion(..)— 完整请求完成后回调。
为@ResponseBody和ResponseEntitycontroller 方法,则将响应写入
并在HandlerAdapter以前postHandle被称为。这意味着它是
更改响应(例如添加额外的标头)为时已晚。您可以实现ResponseBodyAdvice并将其声明为控制器通知 bean 或配置它
直接在RequestMappingHandlerAdapter. |
有关如何作的示例,请参阅有关 MVC 配置部分中的拦截器
配置拦截器。您也可以使用单独的 setter 直接注册它们HandlerMapping实现。
| 拦截器不适合作为安全层,因为 与带注释的控制器路径匹配不匹配。通常,我们建议使用 Spring 安全性,或者与 Servlet 过滤器链集成的类似方法, 并尽早应用。 |