【笔记】SpringBoot配置拦截器

前言

SpringBoot配置拦截器,利用SpringMVC进行拦截

配置拦截器

  • 创建一个拦截器类,实现HandlerInterceptor接口,并交给Spring管理
1
2
3
4
@Component
public class UserInterceptor implements HandlerInterceptor {
...
}
  • 重写方法,实现拦截
  • 返回值为true表示放行,返回值为false表示拦截

preHandle():这个方法是在客户端发来的请求开始拦截
postHandle():这个方法是在服务器发出的响应开始拦截
afterCompletion():这个方法是在视图渲染之后(服务器发的响应,要被客户端接收之前)开始拦截

1
2
3
4
5
6
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 重定向
response.sendRedirect("/user/login.html");
return false;
}

添加到配置类

addInterceptor():传递拦截器对象
addPathPatterns():传递拦截的访问路径,可以任意数量的字符串

1
2
3
4
5
6
7
8
9
@Configuration
public class MvcConfigurer implements WebMvcConfigurer {
@Autowired
private UserInterceptor userInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(userInterceptor).addPathPatterns("/cart/**","/order/**");
}
}

完成