拦截器的使用
Springboot集成了SpringMVC拦截器,只需要简单的配置,使用起来非常简单。
配置拦截器
搭建好SpringBoot的环境,编写自定义的Interceptor类,该类需要继承HandlerInterceptorAdapter类,重写对应的如下方法即可:
- preHandle方法 ,在请求处理之前进行调用;
- postHandle方法 ,请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后);
- afterCompletion方法 ,在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作);
一般是在重写preHandle方法即可。
编写完拦截器后,需要编写配置类Configuration, 该类需要实现WebMvcConfigurer接口,并实现addInterceptors方法,该方法是添加对应的拦截地址。如下:
(注意,@Configuration和@Bean注解必须添加)
实现的方法如下:
完成以上两步,启动项目,拦截器就生效了。
拦截器失效?
第一次使用的时候,拦截器一直没起作用,几经波折,后面解决了,因为SpringBoot扫描的时候不能扫描主类所在包的上级文件。(主类(也就是@SpringBootApplication)所在包的位置。) 因为@SpringBootApplication只会扫描主类所在包和子包的类,记得别放错位置。