zoukankan      html  css  js  c++  java
  • Springboot拦截器的使用

    Springboot拦截器的使用

    1. 引入springboot-starter-web
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
         <exclusions>
             <exclusion>
                 <artifactId>org.springframework.boot</artifactId>
                 <groupId>spring-boot-start-tomcat</groupId>
             </exclusion>
         </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-undertow</artifactId>
    </dependency>
    
    1. 创建拦截器

      @Component
        
      public class LogInterceptor implements HandlerInterceptor { 
        static Logger logger = LoggerFactory.getLogger(LoggerFactory.class);
      
          @Override
          public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
              logger.info("请求的路径为: "+ request.getRequestURI() + ", 请求的参数为:" + JSON.toJSONString(request.getParameterMap()));
              return true;
          }
      }
      
    2. 创建WebMvcConfigurer。

      WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer 接口;

      @Configuration
      public class RequestLogConfiguration {
        
          @Autowired
          private LogInterceptor logInterceptor;
      
          @Bean
          public WebMvcConfigurer webMvcConfigurer(){
              return new WebMvcConfigurer() {
                  @Override
                  public void addInterceptors(InterceptorRegistry registry) {
                      registry.addInterceptor(logInterceptor).addPathPatterns("/**");
                  }
              };
          }
      
      }
      

      还有第二种方式实现,直接用WebConfiguration implements WebMvcConfigurer 重写addInterceptors方法

  • 相关阅读:
    模糊化控制
    第8章 控制对象的访问(setter、getter、proxy)
    第7章 面向对象与原型
    Termux键盘配置
    在md里画流程图
    设置浏览器不缓存文件
    安卓手机使用Termux及搭建FTP服务器
    第6章 未来的函数:生成器和promise
    第5章 精通函数:闭包和作用域
    第4章 函数进阶:理解函数调用
  • 原文地址:https://www.cnblogs.com/undefined22/p/12579197.html
Copyright © 2011-2022 走看看