Spring HandlerInterceptor实现原理代码解析
HandlerInterceptor 在这里看到这个HandlerExecutionChain对interceptor的调用,在这里深入看一下。
HandlerExecutionChain 就是一个类,绑定了Handler( 对应的Controller) 和 Interceptors , 所以作用就是对Controller前后执行interceptors, 类似Filter
几个问题:
1. interceptor调用位置?
1 2 3 对应调用 handlerInterceptor preHandle, postHandle, afterCompletion
先看第一行的:
进到对应的interceptor实现类,preHandler返回true, 如果返回false, 就会到DispatcherServlet就直接return了。
看第二行没有特别的:
由于它只重写了preHandle
所以走到它父类的postHandle了。方法是空的。
第三行和第二行一样不赘述了。
以上就是执行位置。
所以如果实现HandlerInterceptor , preHandle 应该返回true, 具体要拦截的内容写在return true之前就行。 postHandle和afterCompletion 都是void方法,直接在里面写需要拦截的内容。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
详解Maven 搭建spring boot多模块项目(附源码)
这篇文章主要介绍了详解Maven 搭建spring boot多模块项目(附源码),具有一定的参考价值,有兴趣的可以了解一下2017-09-09浅谈SpringMVC HandlerInterceptor诡异问题排查
这篇文章主要介绍了浅谈SpringMVC HandlerInterceptor诡异问题排查,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-05-05SpringBoot3使用devtools实现代码热部署的详细步骤
Spring Boot DevTools是一组用于提高开发人员生产力,并加速Spring Boot应用程序开发的工具,它提供了一些功能,可以帮助开发人员更快速地构建应用程序,并减少常见的开发问题,本文给大家介绍了SpringBoot3使用devtools实现代码热部署的详细步骤,需要的朋友可以参考下2024-01-01
最新评论