springboot 配置使用拦截器 interceptor
程序员文章站
2022-07-09 18:03:30
...
springboot 配置使用拦截器 interceptor
1 定义拦截器类实现 HandlerInterceptor
package com.kerry.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class MyInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
// TODO Auto-generated method stub
}
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2) throws Exception {
return false;
}
}
2 编写配置类 InterceptorConfigure
package com.kerry.configure;
import org.springframework.boot.autoconfigure.web.WebMvcRegistrationsAdapter;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import com.kerry.interceptor.MyInterceptor;
import com.kerry.interceptor.MyInterceptor1;
@Configuration
public class InterceptorConfigure extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor())
.addPathPatterns("/interceptor/*")
.excludePathPatterns("/interceptor/exclude/*");
// registry.addInterceptor(new MyInterceptor1())
// .addPathPatterns("/interceptor1/*")
// .excludePathPatterns("/interceptor1/exculde/*");
}
}
多个拦截器可以在里面添加多个
上面继承的 WebMvcConfigurerAdapter 里面有很多其他的使用配置
只有经过DispatcherServlet 的请求,才会走拦截器链,我们自定义的Servlet 请求是不会被拦截的,比如我们自定义的Servlet地址 http://localhost:8080/servlet/myServlet 是不会被拦截器拦截的。并且不管是属于哪个Servlet 只要复合过滤器的过滤规则,过滤器都会拦截。
上面用到的 WebMvcConfigurerAdapter 并非只是注册添加拦截器使用,其顾名思义是做Web配置用的,它还可以有很多其他作用,通过下面截图便可以大概了解,具体每个方法都是干什么用的,留给大家自己研究(其实都大同小异也很简单)
附上项目结构
上一篇: 深入了解JVM垃圾收集机制
下一篇: jwt-simple过期时间不对问题
推荐阅读
-
SpringBoot使用Druid数据源的配置方法
-
详解Springboot配置文件的使用
-
1-4. SpringBoot配置自定义拦截器,实现日志管理
-
SpringBoot JPA使用配置过程详解
-
使用SpringBoot简单了解Druid的监控系统的配置方法
-
springboot如何使用logback-spring配置日志格式,并分环境配置
-
JAVAEE——SpringBoot日志篇:日志框架SLF4j、日志配置、日志使用、切换日志框架
-
使用Java类加载SpringBoot、SpringCloud配置文件
-
SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景
-
springboot2.3.4版本配置拦截器(不会配的,样式失效的看过来)