在Spring MVC中,拦截器类似于Servlet中的过滤器,用于拦截用户请求并作出相应的处理,如权限验证、记录请求信息的日志、判断用户是否登录等。
可参考该博客:https://blog.csdn.net/weixin_43702146/article/details/125543246
首先我们先自定义一个拦截器的类,类上需要使用@Component注解将拦截器注册到容器中
1.第一步拦截器对象实现接口
定义拦截器需要实现HandlerInterceptor接口,该接口中有三个方法:
一般来说都是在preHandle方法中进行接口请求前的校验等操作,根据具体业务来配置
preHandle()方法:
控制层执行器方法前的拦截器(该方法时在控制层执行器方法前调用,当该方法返回结果为true则继续调用下一个拦截器,如果已经是最后一个拦截器,则调用控制层中的执行器方法;当该方法返回结果为false,则不会继续执行控制层执行器中的方法)
postHandle()方法
控制层方法返回时拦截器(该方法是控制层执行器方法执行之后,由DispatcherServlet在将结果响应给浏览器前调用的方法)
afterCompletion()方法
控制层方法结束后的拦截器(该方法在请求业务处理执行完全结束之后由DispatcherServlet调用执行)
2.第二步注册拦截器
定义好拦截器之后需要注册该拦截器,在此配置类中需要实现WebMvcConfigurer接口,需要重写addInterceptors(InterceptorRegistry registry) 方法进行注册
注意:如果需要配置多个拦截接口使用逗号(,)隔开即可
注册完毕之后就可以启动服务调用指定拦截的请求进行测试了!