SpringMvc中的拦截器

拦截器

首先 他就是一个类 继承了 HandlerInterceptor接口

里面有三个方法

分别为: preHandle 、postHandle和 afterCompletion

当该拦截器拦截了某个方法 执行的顺序是:

preHandle -> 该方法 -> postHandle -> afterCompletion

该类(拦截器)要进行@Component注入

并且是在spring mvc中的配置文件去配置的 (这一点和过滤器不同 过滤器是在web.xml文件中配置的)

可以指定拦截哪些handler方法

默认配置是拦截所有的方法

也可以选择某些具体的方法

其中 在拦截器中 第一个方法 如果是return true;

方法目标正常被执行

如果是return false

该方法就不会执行 并且postHandle和 afterCompletion 也不会执行

此外 也可以有多个拦截器

执行顺序看配置文件中的配置先后顺序

比如有两个拦截器 分别为:拦截器1 拦截器2 且 在这两个拦截器中 第一个方法 均是return true;

那么执行顺序为 :

拦截器1的preHandle -> 拦截器2的preHandle -> 执行方法 拦截器2的 postHandle->

拦截器1的 postHandle -> 拦截器2的afterCompletion-> 拦截器1的afterCompletion

若其中 拦截器2的preHandle 返回return false 到此为止 不会执行handler方法 跳过 直接继续执行拦截器1的afterCompletion

若其中 拦截器1的preHandle 返回return false 到此为止 不会执行handler方法 也不会有任何后续

一旦出现return false 执行方法直接放弃执行

相关推荐
忧郁的Mr.Li7 小时前
SpringBoot中实现多数据源配置
java·spring boot·后端
yq1982043011567 小时前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端
一个public的class7 小时前
你在浏览器输入一个网址,到底发生了什么?
java·开发语言·javascript
有位神秘人7 小时前
kotlin与Java中的单例模式总结
java·单例模式·kotlin
golang学习记7 小时前
IntelliJ IDEA 2025.3 重磅发布:K2 模式全面接管 Kotlin —— 告别 K1,性能飙升 40%!
java·kotlin·intellij-idea
爬山算法7 小时前
Hibernate(89)如何在压力测试中使用Hibernate?
java·压力测试·hibernate
暮色妖娆丶7 小时前
SpringBoot 启动流程源码分析 ~ 它其实不复杂
spring boot·后端·spring
消失的旧时光-19437 小时前
第十四课:Redis 在后端到底扮演什么角色?——缓存模型全景图
java·redis·缓存
BD_Marathon7 小时前
设计模式——依赖倒转原则
java·开发语言·设计模式
BD_Marathon8 小时前
设计模式——里氏替换原则
java·设计模式·里氏替换原则