美文网首页
SpringBoot 2.3 + 自定义拦截器

SpringBoot 2.3 + 自定义拦截器

作者: vincent_wujia | 来源:发表于2020-10-28 14:28 被阅读0次

    1、创建自定义拦截器实现 HandlerInterceptor(拦截器处理器)

    /**
     * 创建自定义拦截器
     * @author xiao_wu
     * @date 2020/10/20 13:11
     */
    @Slf4j
    public class MyInterceptor implements HandlerInterceptor {
    
        /**
         * 通过实现 HandlerInterceptor中的预先处理,方法进行请求验证操作
         */
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
            log.info("自定义拦截器");
            log.info("这里可以编写不同的业务请求拦截");
            String user = request.getHeader("user");
            if(''.equals(user) || user == null){
                log.info("验签失败---user不存在");
                return false;
            }
            return true;
        }
        /**
         * postHandle(后期处理)
         * 该方法在preHandle返回为true,执行完Controller层的方法后执行
         * 可以修改ModelAndView
         * ps:返回的为json数据时不能修改(@RestController)此类注解修饰不能修改
         */
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView){
    
        }
    
        /**
         * afterCompletion(完成后处理)
         * 当请求完成后执行,一般用户数据缓存清楚
         */
        @Override
        public void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception e){
    
        }
    }
    

    2、实现WebMvnConfigurer中的addInterceptors方法进行自定义拦截器的注册

    /**
     * 设置自定义拦截器
     * @author xiao_wu
     * @date 2020/10/20 13:31
     */
    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
        /**
         * 实现 WebMvcConfigurer 中的添加拦截器方法
         * @param registry 拦截器注册表
         */
        @Override
        public void addInterceptors(InterceptorRegistry registry){
            //使用拦截器注册表进行添加 自定义拦截器
            registry.addInterceptor(new MyInterceptor())
                    //添加拦截路径
                    .addPathPatterns("/inter/**")
                    //设置放行路径
                    .excludePathPatterns("/outer/**");
        }
    }
    

    相关文章

      网友评论

          本文标题:SpringBoot 2.3 + 自定义拦截器

          本文链接:https://www.haomeiwen.com/subject/ekoqvktx.html