首先我们创建Interceptor,实现HandlerInterceptor覆写方法:
一、下面我创建了三个拦截器:
MyInterceptor,UserInterceptor,StudentInterceptor

@Component
public class MyInterceptor implements HandlerInterceptor {

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("MyInterceptor preHandle");
return true;
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("MyInterceptor postHandle");
}

@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 {

@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");

}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("StudentInterceptor afterCompletion");

}
}

@Component
public class UserInterceptor implements HandlerInterceptor {

@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");
}
}

二、把拦截器加入到拦截器队列 实现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("/**");

}
}

三、最后访问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

最新文章

  1. 通过ios实现RSA加密和解密
  2. ubuntu14.04 us sources.list
  3. 使用windbg分析iis崩溃的一个实例
  4. TestLink学习四:TestLink1.9.13使用说明
  5. 20145210 《Java程序设计》第十周学习总结
  6. Windows Server2008+IIS7部署网站的日期格式问题
  7. Surrounded Regions
  8. highcharts 根据表格转化为不同的图表
  9. PHP函数ip2long转换IP时数值太大产生负数的解决办法
  10. 「七天自制PHP框架」第四天:模型关联
  11. ASP.NET Core的JWT的实现(自定义策略形式验证).md
  12. hibernate批量删除写法
  13. webForm TO MVC
  14. 制造业期刊-ZT
  15. Swift - 给图片和按钮添加阴影边框
  16. MongoDB(课时29 MapReduce)
  17. bzoj千题计划148:bzoj1537: [POI2005]Aut- The Bus
  18. AGPS定位基本机制
  19. 让低版本IE也能正常运行HTML5+CSS3网站的3种解决方案
  20. 关于String和StringBuilder、StringBuffer的一个简单性能测试

热门文章

  1. CSS样式三种形式222
  2. windows下使用linux terminal
  3. Scratch编程:游来游去的鱼(二)
  4. io.lettuce.core.protocol.ConnectionWatchdog - Reconnecting, last destination was ***
  5. gitlab私有环境搭建
  6. java常用配置文件头部声明
  7. php 判断请求是否是json
  8. javascript 之 扩展对象 jQuery.extend
  9. Self寄宿
  10. 【转载】C#中PadLeft函数按特定字符补足字符串长度