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方法

原文 

https://segmentfault.com/a/1190000022164918

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Springboot拦截器的使用

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址