SpringBoot项目中如何自定义一个拦截器
1、说明
springboot拦截器,可以实现用户在请求之前,之中,之后进行相应的处理。
如:
- 日志记录:记录请求信息的日志,以便进行信息监控、信息统计等;
- 权限检查:如登录校验,在处理器处理之前先判断是否已经登录;
- 性能监控:通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间。
- 通用行为:读取 Cookie 得到用户信息并将用户对象放入请求,从而方便后续流程使用。还有如提取 Locale、Theme 信息等,只要是多个处理器都需要的都可以用拦截器来实现。
2、使用方式
第一步:
- 先继承HandlerInterceptor,并且实现其方法(preHandle,postHandle,afterCompletion)
- 注意可以实现多个拦截器
第二步
- 通过继承WebMvcConfigurer实现对拦截器的配置
- 根据其注册顺序进行拦截
3、实现示例
这里通过实现一个检查请求头的拦截器的示例,来展示拦截器的用法。
第一步继承HandlerInterceptor
import