当前位置:网站首页 > 技术博客 > 正文

自定义拦截器类包括哪3个方法



在这里插入图片描述

💓 博客主页:从零开始的-CodeNinja之路

⏩ 收录文章:【Spring Boot】 深入理解Spring Boot拦截器:自定义设计与实现全攻略

🎉欢迎大家点赞👍评论📝收藏⭐文章
在这里插入图片描述

在这里插入图片描述

  • 需要修改每个接口的处理逻辑
  • 需要修改每个接口的返回结果
  • 接口定义修改,前端代码也需要跟着修改

在拦截器当中,开发⼈员可以在应用程序中做⼀些通用性的操作,比如通过拦截器来拦截前端发来的
请求,判断Session中是否有登录用户的信息.如果有就可以放行,如果没有就进行拦截.
在这里插入图片描述

正常的调用顺序:在这里插入图片描述
有了拦截器之后,会在调用Controller之前进行相应的业务处理,执行的流程如下图在这里插入图片描述

  1. 添加拦截器后,执行Controller的方法之前,请求会先被拦截器拦截住.执行 preHandle() 方法,
    这个方法需要返回⼀个布尔类型的值.如果返回true,就表示放行本次操作,继续访问controller中的
    方法.如果返回false,则不会放行(controller中的方法也不会执行).

  2. controller当中的方法执行完毕后,再回过来执行 postHandle() 这个方法以及
    afterCompletion() 方法,执行完毕之后,最终给浏览器响应数据.

拦截器的基本使用.

拦截器的使用步骤分为两步:

  1. 定义拦截器
  2. 注册配置拦截器
  3. 拦截器的拦截路径配置
3.1 定义拦截器

自定义拦截器:实现HandlerInterceptor接口,并重写其所有方法

 
  
  • preHandle()方法:目标方法执行前执行.返回true:继续执行后续操作;返回false:中断后续操作.
  • postHandle()方法:目标方法执行后执行
  • afterCompletion()方法:视图渲染完毕后执行,最后执行(后端开发现在⼏乎不涉及视图,暂不了 解)
3.2 注册配置拦截器

注册配置拦截器:实现WebMvcConfigurer接口,并重写addInterceptors方法

 
  

启动服务,试试访问任意请求,观察后端日志
在这里插入图片描述
可以看到preHandle方法执行之后就放行了,开始执行目标方法,目标方法执行完成之后执行
postHandle和afterCompletion方法.


我们把拦截器中preHandle方法的返回值改为false,再观察运行结果
在这里插入图片描述
可以看到,拦截器拦截了请求,没有进行响应.

3.3 拦截路径的配置

拦截路径是指我们定义的这个拦截器,对哪些请求生效.

我们在注册配置拦截器的时候,通过 addPathPatterns() 方法指定要拦截哪些请求.也可以通过excludePathPatterns() 指定不拦截哪些请求.

 
  

在拦截器中除了可以设置 / 拦截所有资源外,还有⼀些常见拦截路径设置:

拦截路径 含义 举例 /* ⼀级路径 能匹配/user,/book,/login,不能匹配/user/login / 任意级路径 能匹配/user,/user/login,/user/reg /book/* /book下的⼀级路径 能匹配/book/addBook,不能匹配/book/addBook/1,/book /book/ /book下的任意级路径 能匹配/book,/book/addBook,/book/addBook/2,不能匹配/user/login

以上拦截规则可以拦截此项目中的使用URL,包括静态文件(图片文件,JS和CSS等文件).

  • 上一篇: ipad当安卓手机显示器
  • 下一篇: shellcode加密
  • 版权声明


    相关文章:

  • ipad当安卓手机显示器2025-06-02 11:30:05
  • mq消息队列底层原理2025-06-02 11:30:05
  • 01背包问题动态规划详解2025-06-02 11:30:05
  • “[黑夜汉化组]”2025-06-02 11:30:05
  • .so文件如何编译2025-06-02 11:30:05
  • shellcode加密2025-06-02 11:30:05
  • mfcc matlab2025-06-02 11:30:05
  • 2021免费dns2025-06-02 11:30:05
  • 全能鼠标键盘记录器破解版2025-06-02 11:30:05
  • java最简单的测试代码怎么写2025-06-02 11:30:05