Spring全局拦截请求的4种方式
- Filter/OncePerRequestFilter
- Interceptor
- @ControllerAdvice/@RestControllerAdvice注解下的RequestBodyAdvice和ResponseBodyAdvice
- aspect
- Controller
请求被拦截的顺序从上到下
Filter/OncePerRequestFilter:可以拿到原始的HTTP请求和响应信息,拿不到处理请求的方法值信息
interceptor:既可以拿到HTTP请求和响应信息,也可以拿到请求的方法信息,拿不到方法调用的参数值信息
RequestBodyAdvice和ResponseBodyAdvice:前者拦截不到无@RequestBody的方法,后者拦截不到无@ResponseBody的方法
aspect:可以拿到请求方法的传入参数值,拿不到原始的HTTP请求和响应的对象