1.拦截器 Interceptor 简介
1.1 拦截器 Interceptor 介绍
拦截器是Spring中的概念,和过滤器类似,可以对用户请求进行拦截过滤处理。但是相对于过滤器而言,拦截器要的控制更加的细节,拦截器可以在三个地方进行执行。
- 可以在请求到达Controller控制器之前 通过拦截器执行一段代码
- 也可以在控制器执行之后,通过拦截器执行一段代码 【此时只是Controller执行完毕 视图还没有开始渲染】
- 最后在整个请求结束的时候还可以通过拦截器执行一段时间代码
1.2 拦截器 Interceptor 使用场景
拦截器本质上是面向切面编程(AOP),符合横切关注点的功能都可以放在拦截器中来实现,主要的应用场景包括:
- 登录验证,判断用户是否登录。
- 权限验证,判断用户是否有权限访问资源,如校验token
- 日志记录,记录请求操作日志(用户ip,访问时间等),以便统计请求访问量。
- 处理cookie、本地化、国际化、主题等。
- 性能监控,监控请求处理时长等。
- 通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有如提取Locale、Theme信息等,只要是多个处理器都需要的即可使用拦截器实现)
- 过滤器应用场景
1.3 SpringBoot2.X和1.X版本拦截器使用差异
1.3.1 配置类上的定义方式不同
- 1.X和2.X在拦截器的实现类上都是