自定义拦截器

第一步:

  创建的first类 去实现 HandlerInterceptor    按需重写里面的   preHandle (预处理)、postHandle(执行前 也叫前置拦截器)、afterCompletion(渲染之后 执行任务之前)方法

第二步:

  创建好first类 不代表拦截器生效了 要去写个配置类去配置它。 创建second类去实现WebMvcConfigurer  并加上@Configuration 表明是配置类  在这个类中 重写addInterceptors方法  在里面去

重写拦截器的规则 。 添加拦截器规则的时候 要把你创建的first类当做参数传递进去。  

excludePathPatterns为排除拦截路径、addPathPatterns  为拦截路径、order为多个拦截器并存的时候 默认是按照添加顺序执行

在拦截的时候 InterceptorRegistration类会默认把拦截器执行顺序优先级设置为0 要想再second类中把某个拦截器先执行 可以调用order方法去设置


此时拦截器就生效了

 

 

//创建的first类只能通过构造函数注入  不能通过注解 因为LoginInterceptor 是我们手动new出来的   
例如:redis中 需要用StringRedisTemplate这个类 所以不能使用@Resource注解等 可以使用构造器注入

 

posted @ 2024-07-15 16:04  小迷糊的指引  阅读(16)  评论(0编辑  收藏  举报