1、maven 依赖版本
注意:本次示例的 spring-boot-starters 的版本是 2.1.13
2、实现步骤
① 实现配置类
implements WebMvcConfigurer
② 实现拦截器
LoginInterceptor extends HandlerInterceptorAdapter
③ 把拦截器添加到配置类中
④ 添加需要拦截的请求
⑤ 添加需要排除的请求
3、实现配置类
4、拦截器
① preHandle 方法是进行处理器拦截用的,顾名思义,该方法将在 Controller 处理之前进行调用
② postHandle 在 Controller 的方法调用之后执行,但是它会在 DispatcherServlet 进行视图的渲染之前执行
③ afterCompletion 该方法将在整个请求完成之后,也就是 DispatcherServlet 渲染了视图执行(这个方法的主要作用是用于清理资源的)
5、有时,希望链接不被拦截,可以使用自定义注解
在 LoginInterceptor 开始添加如下代码
注意:经过研究发现,只有当 GET 请求是请求静态文件时 (在 spring 配置文件里会配置静态文件的 URI),handler 的实际类型会是 DefaultServletHttpRequestHandler,此时强制转换就会报错。需要加这行代码判断,handler instanceof HandlerMethod 。
欢迎关注 @Python大星 ,一个会点 Python 的 Java 程序员。如果你有更好的想法,欢迎留言,一起探讨,想说你就说啊!后面继续分享Java的相关开发,人少就散了吧!
@Python大星 | 文