首先咱們建立Interceptor,實現HandlerInterceptor覆寫方法:
1、下面我建立了三個攔截器:
MyInterceptor,UserInterceptor,StudentInterceptorapp
@Component
public class MyInterceptor implements HandlerInterceptor {ide
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("MyInterceptor preHandle");
return true;
}post
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("MyInterceptor postHandle");
}.net
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("MyInterceptor afterCompletion");
}
}
@Component
public class StudentInterceptor implements HandlerInterceptor {blog
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("StudentInterceptor preHandle");
return true;
}隊列
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("StudentInterceptor postHandle");io
}class
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("StudentInterceptor afterCompletion");test
}
}
@Component
public class UserInterceptor implements HandlerInterceptor {model
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("UserInterceptor preHandle");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("UserInterceptor postHandle");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("UserInterceptor afterCompletion");
}
}
2、把攔截器加入到攔截器隊列 實現WebMvcConfigurer
@Configuration
public class MyAdapter implements WebMvcConfigurer {
@Resource
private MyInterceptor myInterceptor;
@Resource
private UserInterceptor userInterceptor;
@Resource
private StudentInterceptor studentInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
//1.加入的順序就是攔截器執行的順序,
//2.按順序執行全部攔截器的preHandle
//3.全部的preHandle 執行完再執行所有postHandle 最後是postHandle
registry.addInterceptor(studentInterceptor).addPathPatterns("/**");
registry.addInterceptor(myInterceptor).addPathPatterns("/**");
registry.addInterceptor(userInterceptor).addPathPatterns("/**");
}
}
3、最後訪問controller
@RestController
public class TestController {
@RequestMapping("/test")
public String test() {
return "test";
}
}
————————————————版權聲明:本文爲CSDN博主「小賊驢」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/weixin_38362455/article/details/85029748