springboot 添加拦截器代码
时间: 2023-10-12 12:21:33 浏览: 57
在 Spring Boot 中添加拦截器,需要完成以下步骤:
1. 创建一个拦截器类,并实现 HandlerInterceptor 接口中的三个方法:preHandle、postHandle 和 afterCompletion。
```java
@Component
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 在请求处理之前进行调用(Controller 方法调用之前)
System.out.println("preHandle方法执行");
return true; // 如果返回 false,则中断请求
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
// 在请求处理之后进行调用,但是在视图被渲染之前(Controller 方法调用之后)
System.out.println("postHandle方法执行");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
// 在整个请求结束之后被调用,也就是在 DispatcherServlet 渲染了对应的视图之后执行(主要用于资源清理工作)
System.out.println("afterCompletion方法执行");
}
}
```
2. 创建一个配置类,并在其中添加拦截器。
```java
@Configuration
public class MyInterceptorConfig implements WebMvcConfigurer {
@Autowired
private MyInterceptor myInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加拦截器
registry.addInterceptor(myInterceptor)
.addPathPatterns("/**"); // 拦截所有请求
}
}
```
3. 测试拦截器是否生效。启动应用程序并发送一个请求,查看控制台输出是否包含 preHandle 方法执行。如果输出包含 preHandle 方法执行,则表示拦截器已经生效。