一、创建拦截器
创建拦截器类,实现HandlerInterceptor接口,重写preHandle方法,postHandle方法
@Slf4j
public class MyInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//在请求处理之前进行拦截处理
log.info("测试拦截器------preHandle");
//返回true表示继续执行请求,返回false表示停止执行请求
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//在请求处理之后进行拦截处理
log.info("测试拦截器------postHandle");
}
}
二、 创建拦截器配置类
创建拦截器配置类,实现WebMvcConfigurer接口,重写addInterceptors方法,并用@Configuration注解标注该类为配置类
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/test/**");
}
}
在addInterceptors方法中把刚才创建的拦截器添加进去,并设置拦截的路径;(也可以通过excludePathPatterns方法设置排除的路径)
三、编写Controller类
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/test1")
public void test1() {
log.info("测试业务处理");
}
}
四、测试效果
我们发起请求,可以在控制台得到这样的日志
测试拦截器------preHandle
测试业务处理
测试拦截器------postHandle