首先回憶一下springmvc中攔截器的使用:
1.定義一個類 implements HandlerInterceptor,實現HandlerInterceptor接口中的方法
preHandler 1
postHandler 2
afterCompletion 3
2.配置攔截器 springmvc.xml
<mvc:Interceptors> <mvc:Interceptor> <path="/user/*"> <exinclud path="/user/login"> </mvc:Interceptor> </mvc:Interceptors>
springboot 中不建議使用xml文件,在使用攔截器的時候springboot框架自動配置
springboot中定義和使用攔截器如下:
1.開發自定義攔截器類
攔截器類 implements HandlerInterceptor
public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { System.out.println("=======1======="); return true; } @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { System.out.println("========2========"); } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { System.out.println("==========3========"); } }
2.配置攔截器,springboot自動配置(@Configuration)
@Configuration public class MyWebConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyInterceptor()) .addPathPatterns("/user/test") //攔截項目中的哪些請求 .excludePathPatterns("/user/save"); //對項目中的哪些請求不攔截 } }