对于最新稳定版本,请使用Spring Framework 7.0.1spring-doc.cadn.net.cn

拦截

处理器映射实现支持处理器拦截,这在以下情况下非常有用 你需要在不同请求之间应用功能。一个拦截者可以实现 以后:spring-doc.cadn.net.cn

  • preHandle(..)——在实际运行处理器之前回调,返回布尔值。 如果 方法返回true,执行继续;如果它会回来false,其余部分 执行链被绕过,处理器不会被调用。spring-doc.cadn.net.cn

  • postHandle(..)——在操作员运行后回调。spring-doc.cadn.net.cn

  • 完成后(..)—— 请求完成后回拨。spring-doc.cadn.net.cn

@ResponseBody响应实体控制器方法,响应写为 并且在处理适配器以前postHandle被叫去。那就是说它确实存在 太晚了,无法更改响应,比如添加额外的标题。你可以实现回复BodyAdvice并声明为控制器建议豆或配置 直接RequestMappingHandlerAdapter.

关于如何进行的示例,请参见截器关于MVC配置的部分。 配置拦截器。你也可以直接用二传手注册他们处理器映射实现。spring-doc.cadn.net.cn

拦截器并不理想地作为安全层,因为其潜在的 与带注释的控制器路径匹配不匹配。一般来说,我们建议使用春季 安全性,或类似于与Servlet滤波链集成的方法, 并尽早申请。