第一步:创建SpringBoot项目,添加依赖:
org.springframework.boot
spring-boot-starter-web
第二步:自定义拦截器
public class MyHandlerInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle:请求前调用");
return true;//返回false则请求中断
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle:请求后调用");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion:请求调用完成后回调的方法,即在视图渲染完成后回调");
}
}
第三步:配置拦截器
@Configuration
public class WebConfigurer implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
MyHandlerInterceptor myHandlerInterceptor = new MyHandlerInterceptor();
//如果有多个拦截器的话,添加顺序就是拦截顺序
registry.addInterceptor(getHandlerInterceptor())
.addPathPatterns("/**");
WebMvcConfigurer.super.addInterceptors(registry);
}
@Bean
public static HandlerInterceptor getHandlerInterceptor() {
return new MyHandlerInterceptor();
}
}
第四步:自定义Controller
@RestController
public class DispatcherController {
@RequestMapping("/fun")
public void fun() {
System.out.println("fun");
}
}
部署项目,浏览器中访问fun