第一步:
创建的first类 去实现 HandlerInterceptor 按需重写里面的 preHandle (预处理)、postHandle(执行前 也叫前置拦截器)、afterCompletion(渲染之后 执行任务之前)方法
第二步:
创建好first类 不代表拦截器生效了 要去写个配置类去配置它。 创建second类去实现WebMvcConfigurer 并加上@Configuration 表明是配置类 在这个类中 重写addInterceptors方法 在里面去
重写拦截器的规则 。 添加拦截器规则的时候 要把你创建的first类当做参数传递进去。
excludePathPatterns为排除拦截路径、addPathPatterns 为拦截路径、order为多个拦截器并存的时候 默认是按照添加顺序执行
在拦截的时候 InterceptorRegistration类会默认把拦截器执行顺序优先级设置为0 要想再second类中把某个拦截器先执行 可以调用order方法去设置
此时拦截器就生效了
//创建的first类只能通过构造函数注入 不能通过注解 因为LoginInterceptor 是我们手动new出来的
例如:redis中 需要用StringRedisTemplate这个类 所以不能使用@Resource注解等 可以使用构造器注入
标签:拦截器,自定义,创建,执行,重写,first From: https://www.cnblogs.com/spot/p/18303299