HandlerInterceptor和HandlerInceptorAdaptor

突然纠结这俩接口,主要是因为WebMvcConfigurer和WebMvcConfigurerAdapter。我是这么想的,前者为Spring Boot2的推荐使用,后者在Spring Boot2被标记为deprecated,但是WebMvcConfigurerAdapter是基于WebMvcConfigurer实现的呀,常规思路不都是推荐使用最新的嘛,怎么这里往回走了(其实源码注释已经给了解释,并且基于这个解释也能简单从一个方面说明Spring Boot2为啥最低只支持JDK8)。

然后在使用HandlerInceptorAdaptor的时候就开始纠结了,咋这儿就推荐使用HandlerInceptorAdaptor了?
看了一下HandlerInceptorAdaptor源码,注释说是HandlerInterceptor的精简版本,HandlerInceptorAdaptor确实是实现了AsyncHandlerInterceptor,并且AsyncHandlerInterceptor继承自HandlerInterceptor。

总而言之,怪我这思想太简单,不能简单从命名(Adaptor)去判断使用哪个。

更多可参考stackoverflow:

What is difference between HandlerInterceptor and HandlerInceptorAdaptor

More: Allinprogram

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HandlerInterceptor 和 Filter 都是在 Web 应用中用于拦截请求并执行一些操作的组件。它们的主要区别在于它们所处的层次不同。 Filter 是 Servlet 规范中定义的一种组件,用于在请求进入 Servlet 容器之前或者 Servlet 容器将响应发送给客户端之前对请求或响应进行预处理或后处理。Filter 位于 Servlet 容器和 Web 应用程序之间的层级,可以访问请求和响应对象,并可以在这两个对象上执行一些操作,例如修改请求或响应的参数、转发请求或重定向响应等。 HandlerInterceptor 是 Spring MVC 框架中定义的一种组件,用于在请求进入 Spring MVC 控制器之前或者控制器将响应发送给客户端之前对请求或响应进行预处理或后处理。HandlerInterceptor 位于 Spring MVC 控制器和 Web 应用程序之间的层级,可以访问请求和响应对象,并可以在这两个对象上执行一些操作,例如检查用户身份、记录请求日志等。 相比之下,HandlerInterceptor 与 Filter 相比有以下几点优势: - HandlerInterceptor 可以访问 Spring MVC 控制器中的方法和参数,可以更方便地获取和修改请求的处理结果。 - HandlerInterceptor 可以通过返回值来控制请求是否继续处理,例如可以直接返回一个错误响应,不再执行后续处理。 - HandlerInterceptor 可以与 Spring MVC 中的拦截器链结合使用,可以按照一定的顺序执行多个拦截器,实现更复杂的请求处理逻辑。 总的来说,HandlerInterceptor 与 Filter 都是用于拦截请求并执行一些操作的组件,它们的功能相似,但是所处的层次和使用方式略有不同,需要根据实际的需求选择合适的组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值