spring boot 拦截器排除拦截某些链接_SpringBoot 拦截器的使用

22707b9f8decc0c46c79802e0d771984.png

1、maven 依赖版本

注意:本次示例的 spring-boot-starters 的版本是 2.1.13

6f8763a3c85ff7f48b6a73ed5ea00148.png

2、实现步骤

① 实现配置类

implements WebMvcConfigurer

② 实现拦截器

LoginInterceptor extends HandlerInterceptorAdapter

③ 把拦截器添加到配置类中

④ 添加需要拦截的请求

⑤ 添加需要排除的请求


3、实现配置类

5783e9d92ea8bbb754319376304515da.png

WebConfigurer

4、拦截器

eac4984ef1878ec0b365a336acfa1493.png

① preHandle 方法是进行处理器拦截用的,顾名思义,该方法将在 Controller 处理之前进行调用

② postHandle 在 Controller 的方法调用之后执行,但是它会在 DispatcherServlet 进行视图的渲染之前执行

③ afterCompletion 该方法将在整个请求完成之后,也就是 DispatcherServlet 渲染了视图执行(这个方法的主要作用是用于清理资源的)

c95953729b946268e29d0da29c849b24.png

LoginInterceptor

5、有时,希望链接不被拦截,可以使用自定义注解

bd2bf5983e789624d1a51ff3be04b14b.png

自定义注解LoginRequired

在 LoginInterceptor 开始添加如下代码

7ee26385b41b9b9d44acaf6fb4a70f70.png

LoginInterceptor

注意:经过研究发现,只有当 GET 请求是请求静态文件时 (在 spring 配置文件里会配置静态文件的 URI),handler 的实际类型会是 DefaultServletHttpRequestHandler,此时强制转换就会报错。需要加这行代码判断,handler instanceof HandlerMethod 。


欢迎关注 @Python大星 ,一个会点 Python 的 Java 程序员。如果你有更好的想法,欢迎留言,一起探讨,想说你就说啊!后面继续分享Java的相关开发,人少就散了吧!

@Python大星 | 文

5228250461fc309cedde9967274d6c5f.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值