在SpringBoot中实现自定义拦截器

  1. 创建类实现SpringMVC框架的HandlerInterceptor接口

    public interface HandlerInterceptor {
     default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         return true;
     }
    
     default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
     }
    
     default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
     }
    }
    
  2. SpringBoot中注册拦截器:

    @Configuration
    public class MyAppConfig implements WebMvcConfigurer {
    
        //添加拦截器对象, 注入到容器中
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
    
            //创建拦截器对象
            HandlerInterceptor interceptor = new LoginInterceptor();
    
            //指定拦截的请求uri地址
            String path []= {"/user/**"};
            //指定不拦截的地址
            String excludePath  [] = {"/user/login"};
            registry.addInterceptor(interceptor)
                    .addPathPatterns(path)
                    .excludePathPatterns(excludePath);
    
        }
    }
    
posted @ 2022-08-09 15:03  z-laoyao  阅读(275)  评论(0编辑  收藏  举报