SpringBoot自定义拦截器-MyInterceptor.class

461 阅读1分钟

创建拦截器类 配置当前拦截器三个生命周期方法

import org.springframework.stereotype.Component;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

@Component

public class MyInterceptor implements HandlerInterceptor {

    @Override

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        System.out.println("MyInterceptor拦截器的preHandle方法执行....");

        return false

    }

 

    @Override

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) **throws** Exception {

        System.out.println("MyInterceptor拦截器的postHandle方法执行....");

    }

 

    @Override

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) **throws** Exception {

        System.out.println("MyInterceptor拦截器的afterCompletion方法执行....");

    }

}

创建自动配置类的接口实现类 【这个配置类是如何加载运行的 目前我不懂 请大神指教】

import com.atguigu.interceptor.MyInterceptor;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration

public class MvcConfig implements** **WebMvcConfigurer** {

 

    @Autowired

    private MyInterceptor myInterceptor ;

 

    /**

     *配置拦截所有的路径 排除登录和注册

     * @param registry

     */

    @Override

    public void addInterceptorsInterceptorRegistry registry) {

        registry.addInterceptor(myInterceptor).addPathPatterns("/**")
        .excludePathPatterns("/login")
        .excludePathPatterns("/user/register");

    }

}