跳到主要内容
版本:7.0.3

拦截

Hunyuan 7b 中英对照 Interception

所有HandlerMapping实现都支持处理器拦截(handler interception),当您希望在多个请求中应用相同功能时,这一特性非常有用。HandlerInterceptor可以实现以下功能:

  • preHandle(..)——在实际处理程序运行之前的回调函数,返回一个布尔值。如果该方法返回true,则执行继续;如果返回false,则跳过剩余的执行流程,不调用处理程序。

  • postHandle(..)——处理程序运行之后的回调函数。

  • afterCompletion(..)——请求完全完成之后的回调函数。

备注

对于@ResponseBodyResponseEntity控制器方法,响应内容是在HandlerAdapter中编写并提交的,在调用postHandle之前。这意味着此时再修改响应(例如添加额外的头部信息)就为时已晚了。你可以实现ResponseBodyAdvice并将其声明为一个Controller Advice bean,或者直接在RequestMappingHandlerAdapter上进行配置。

有关如何配置拦截器的示例,请参阅MVC配置部分中的拦截器。您也可以通过使用各个HandlerMapping实现上的setter来直接注册它们。

注意

由于拦截器可能与带注释的控制器路径匹配不匹配,因此它们并不理想地适合作为安全层。一般来说,我们建议使用Spring Security,或者选择一种类似的方法,并将其尽早集成到Servlet过滤器链中。