做一个单纯的程序汪,分享干货,聊聊人生。
微信公众号:后端架构进阶
关注我发现更多的干货,微服务、Spring源码、JVM、SpringCloud Alibaba、K8S等。
- 最近在写springMvc拦截器的时候,发现
HandlerInterceptor已经不推荐了。并且把拦截器注入到spring容器的bean也不推荐使用WebMvcConfigurerAdapter了。对于代码强迫症患者,看到这种提示全身难受发麻,于是顺藤摸瓜,发现可以这么操作一下,于是做个记录。
一、SpringMvc拦截器
我们知道,spring mvc拦截器比spring的拦截器比起来,可以非常方便的获取HttpServletRequest和HttpServletResponse等web对象实例,这就可以为我们操作这两个对象提供了非常大的想象空间。
spring mvc拦截器的顶层接口是:HandlerInterceptor,包含三个方法:
- preHandle 目标方法执行前执行
- postHandle 目标方法执行后执行
- afterCompletion 请求完成时执行
为了方便我们一般情况会用HandlerInterceptor接口的实现类HandlerInterceptorAdapter类。但是自从web5.0后不推荐使用了,需要我们自己去实现。
假如我要对请求耗时进行打印,那么我直接实现 HandlerInterceptor即可。也是比较推荐的方式。
那么我们既然实现了before和after方法,我们得让spring知道我们这拦截器。
二、WebMvcConfigurer
如果我们要把web的拦截器交给spring,之前的方式是直接继承 WebMvcConfigurerAdapter 即可。但是现在不推荐了,那么我们就直接实现WebMvcConfigurer。
到这一个非常简单的spring mvc的请求时间统计就已经ok了。再添加个简单的controller跑起来看看。
效果如下,当然如果还有拓展权限管理、请求静态资源放行、加上我们的jwt授权验证等等都是直接在这基础之上进行拓展即可。
总结
以上就是今日的内容总结和分享,感谢各位大佬的 点赞、关注和 收藏 !
微信公众号:后端架构进阶
更多文章正在赶来,喜欢记得给我点个 👍 ,感谢支持!
公众号文章同步更新!关注我,不迷路!