springboot拦截器的使用
Spring Boot 拦截器是 AOP 的一种实现,专门拦截对控制层的请求,主要应用于判断用户权限,拦截webSocket请求。
拦截器的使用步骤:
- 创建拦截器(拦截器类实现HandlerInterceptor接口)
- 注册拦截器,并制定拦截规则
拦截器接口为我们提供了三个方法
boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) #此方法在控制器处理请求方法前执行,返回值代表是否中断后续操作,true表示继续执行,false表示中断后续操作。
void postHandle(HttpServletRequest request, HttpServletResponse response,
Object handler, @Nullable ModelAndView modelAndView) #此方法在控制器处理请求方法调用之后,在解析视图之前执行,可以通过此方法对请求域中的模型和视图做进一步修改。
void afterCompletion(HttpServletRequest request, HttpServletResponse response,
Object handler, @Nullable Exception ex) #该方法在视图渲染完成之后执行,通过此方法实现资源清理、记录日志信息等工作。
-
总体结构(仅演示,不固定)
-
实现拦截器接口
-
注册拦截器
在指定拦截器拦截规则时,调用了两个方法:
addPathPatterns:该方法用于指定拦截路径,例如拦截路径为“/**”,表示拦截所有请求,包括对静态资源的请求。
excludePathPatterns:该方法用于排除拦截路径,即指定不需要被拦截器拦截的请求。