• SpringBoot 的拦截器


    首先注册我们要有完整的一个可以开始的开发环境

    先自己创建一个配置类 InterceptorConfig, 实现springboot自带的拦截器接口 WebMvcConfigurer.

     1 package com.example.demo.TestInterceptor;
     2 
     3 import org.springframework.context.annotation.Configuration;
     4 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
     5 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
     6 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
     7 
     8 
     9 @Configuration
    10 public class InterceptorConfig implements WebMvcConfigurer {
    11 
    12 
    13     @Override //用来注册拦截器,我们自己写好的拦截器需要在这里注册才能生效
    14     public void addInterceptors(InterceptorRegistry registry) {
    15 
    16         // addPathPatterns("/**") 表示拦截所有的请求,
    17         // excludePathPatterns("/user", "/register") 表示除了登陆与注册之外,因为登陆注册不需要登陆也可以访问
    18         registry.addInterceptor(new LogCostInterceptor()).addPathPatterns("/**").excludePathPatterns("/login", "/user");
    19     }
    20 
    21     @Override  //用来配置静态资源,如html,js等前端页面资源
    22     public void addResourceHandlers(ResourceHandlerRegistry registry) {
    23 
    24     }
    25 }

     自己写及配置自己的业务需求层面

     1 package com.example.demo.TestInterceptor;
     2 
     3 import org.springframework.web.servlet.HandlerInterceptor;
     4 import org.springframework.web.servlet.ModelAndView;
     5 
     6 import javax.servlet.http.HttpServletRequest;
     7 import javax.servlet.http.HttpServletResponse;
     8 
     9 
    10 public class LogCostInterceptor implements HandlerInterceptor {
    11     @Override
    12     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    13         System.err.println("preHandle是请求执行(bool)");  //preHandle是请求执行前执行的
    14         return true;//如果这里是fale就是不会去执行下面的方法
    15        // 在这里可以完全的执行和实现相应的业务 流程,如登入模块等   
    17     }
    18 
    19     @Override
    20     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    21         System.err.println("postHandle是请求执行(void)");  //postHandler是请求结束执行的,但只有preHandle方法返回true的时候才会执行
    22     }
    23 
    24     @Override
    25     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    26         System.err.println("afterCompletion是请求执行(afterCompletion)");//afterCompletion是视图渲染完成后才执行,同样需要preHandle返回true,该方法通常用于清理资源等工作
    27     }
    28 }
    有志者、事竟成,破釜沉舟,百二秦关终属楚; 苦心人、天不负,卧薪尝胆,三千越甲可吞吴. 加油吧,致每个正在奋斗路上的你!!!
  • 相关阅读:
    drf请求生命周期
    正向代理和反向代理
    cbv源码分析
    Python搭建调用本地dll的Windows服务(浏览器可以访问,附测试dll64位和32位文件)
    Python实现聊天机器人接口封装部署
    Python实现机器人语音聊天
    Python爬虫下载美女图片(不同网站不同方法)
    微信小程序-点餐系统
    Win10系统Python3.8的升级与安装
    Python破解Wifi密码思路
  • 原文地址:https://www.cnblogs.com/cb1186512739/p/11169363.html
Copyright © 2020-2023  润新知