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

相关推荐
向上的车轮20 小时前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
Dragon Wu20 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
跳动的梦想家h20 小时前
环境配置 + AI 提效双管齐下
java·vue.js·spring
坚持就完事了20 小时前
Java中的集合
java·开发语言
wjhx21 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
YCY^v^21 小时前
JeecgBoot 项目运行指南
java·学习
人间打气筒(Ada)21 小时前
jenkins基于Pipeline发布项目
java·pipeline·jenkins·流水线·ci·cd·cicd
爬山算法21 小时前
Hibernate(88)如何在负载测试中使用Hibernate?
java·后端·hibernate
自不量力的A同学21 小时前
Solon AI v3.9 正式发布:全能 Skill 爆发
java·网络·人工智能
万岳科技系统开发21 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法