spring boot 配置拦截器
时间: 2023-06-17 07:05:32 浏览: 112
在 Spring Boot 中配置拦截器需要以下几个步骤:
1. 创建一个拦截器类并实现 HandlerInterceptor 接口,该接口包含了三个方法:preHandle()、postHandle() 和 afterCompletion(),其中 preHandle() 方法在请求处理之前调用,postHandle() 方法在请求处理之后调用,afterCompletion() 方法在视图渲染之后调用。
```
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("请求处理之前");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("请求处理之后,视图渲染之前");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("请求处理之后,视图渲染之后");
}
}
```
2. 在配置类中注册拦截器,可以通过实现 WebMvcConfigurer 接口来注册拦截器,也可以用 @Configuration 注解来标注配置类。
```
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
}
}
```
3. 配置拦截器拦截的请求路径,addPathPatterns() 方法可以传入多个路径参数,表示拦截哪些请求,excludePathPatterns() 方法可以传入多个路径参数,表示排除哪些请求不被拦截。
```
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/login");
}
}
```
阅读全文