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 执行方法直接放弃执行

相关推荐
万亿少女的梦1689 分钟前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐
咩咩啃树皮9 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚9 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
大模型码小白10 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司11 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地12 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415912 小时前
TCP超时重传机制是为了解决什么问题?
java
莫逸风15 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope
z1234567898615 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
yaoxin52112316 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python