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方法,直接在里面写需要拦截的内容。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
SpringCloud微服务之Hystrix组件实现服务熔断的方法
微服务架构特点就是多服务,多数据源,支撑系统应用。这样导致微服务之间存在依赖关系。这篇文章主要介绍了SpringCloud微服务之Hystrix组件实现服务熔断的方法,需要的朋友可以参考下2019-08-08Jackson将json string转为Object,org.json读取json数组的实例
下面小编就为大家带来一篇Jackson将json string转为Object,org.json读取json数组的实例,具有很好的参考价值,希望对大家有所帮助2017-12-12IDEA使用学生邮箱无法注册问题:JetBrains Account connection error: 拒绝连接
这篇文章主要介绍了IDEA使用学生邮箱无法注册问题:JetBrains Account connection error: 拒绝连接,文中通过图文及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-07-07
最新评论