在Springboot项目中, 拦截器也是开发中常用手段,要来做登陆验证、性能检查、日志记录等。写个例子看看,一个拦截器、一个配置类、一个拦截器要拦截的类。
![](https://img2020.cnblogs.com/blog/870314/202109/870314-20210927103255264-164551211.png)
第一拦截器,这个拦截器要实现HandlerInterceptor接口,这个接口里有四大方法,preHandle是在请求controllor前调用,postHandler在调用Controller方法之后、视图渲染之前调用,afterCompletion是在渲染视图完成之后使用,afterConcurrentHandlingStarted方法用来处理异步请求。
![](https://img2020.cnblogs.com/blog/870314/202109/870314-20210927103301042-1374312798.png)
在拦截器配置类class上使用要注解@Configuration,这里要实现接口WebMvcConfigurer。
老版本呢是继承WebMvcConfigurerAdapter,不过新版本已经放弃了,推荐用上面的方式。
![](https://img2020.cnblogs.com/blog/870314/202109/870314-20210927103309652-839065246.png)
重写addInterceptors方法,这个方法里呢要配置两项,一个是拦截器,一个是拦截器的URL。 例子里指明了拦截器Test1Interceptor,拦截的url "/hello/**"。
![](https://img2020.cnblogs.com/blog/870314/202109/870314-20210927103316310-1227067790.png)
写一个控制类,接下来就可以请求了,请求被正确响应。
![](https://img2020.cnblogs.com/blog/870314/202109/870314-20210927103328079-682504045.png)
控制台也正常输出了拦截器打印信息。
![](https://img2020.cnblogs.com/blog/870314/202109/870314-20210927103334591-1605269554.png)
测试成功!说明各项配置都是正确的,没毛病!