前言
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/**"); } }
|
完成