目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、HandlerInterceptor介绍
HandlerInterceptor 接口是 Spring MVC 中用于拦截请求和响应的处理器。它可以在请求处理之前、之后或完成时执行一些操作,例如权限验证、日志记录、数据转换等
二、HandlerInterceptor使用
通过实现这个接口并注册到 Spring MVC 容器中,可以对请求和响应进行灵活的控制。
三、使用步骤
1. 实现HandlerInterceptor接口
public class SaTokenAuthInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws IOException {
// satoken判断登录接口
if (StpUtil.isLogin()) {
// 已登录,通过拦截
return true;
}
// 未登录,直接返回失败
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.getWriter().append(JSONUtil.toJsonStr(ResultVO.fail(ResultVOEnum.NO_AUTH)));
return false;
}
2. 注册到springmvc容器中
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册Sa-Token的认证截器
registry.addInterceptor(new SaTokenAuthInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/auth/**", "/health");
}
}
addPathPatterns:添加拦截的路径,/**指的是所有的都拦截
excludePathPatterns:添加不需要拦截的白名单,可以添加具体的路径/health,也可以将/auth开头的都添加了
WebMvcConfigurer接口是Spring MVC框架中的一种配置方式,其主要作用是对Spring MVC进行个性化定制。通过实现这个接口,开发者可以使用JavaBean的形式代替传统的xml配置文件形式来进行更为灵活的框架配置。
从Spring Boot 2.0开始,推荐直接实现WebMvcConfigurer接口来完成自定义的配置。
总结
学会使用框架提供给开发者的一些系统扩展点的使用,也是一种提升。