SpringBoot创建拦截器Interceptor以及过滤器Filter
-  过滤器的创建 1、创建自定义的过滤器类,实现 javax.servlet.Filter接口,重新doFilter方法,实现自定义逻辑,并放行public class MyFilter implements Filter{@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {//自定义逻辑//放行filterChain.doFilter(servletRequest,servletResponse);} }2、给自定义的过滤器类添加注解,并配置过滤的url范围。 @WebFilter(urlPatterns = "/*")public class MyFilter implements Filter{...}3、配置SpringBoot启动类添加注解 @ServletComponentScan,并配置扫描自定义的过滤器类所在的包路径@SpringBootApplication @ServletComponentScan("com.example.filter") public class MapDemoSpringBootApplication {public static void main(String[] args) {SpringApplication.run(MapDemoSpringBootApplication.class, args);} }
-  拦截器的创建 
 1、创建自定义的拦截器,并实现HandlerInterceptor接口,重构相应的方法(preHandle,postHandle,afterCompletion)
public class Myintercepor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//自定义逻辑return true;//false请求将会被拦截}
}
 2、创建配置类,实现WebMvcConfigurer,重新addInterceptors方法,配置拦截路径,添加@Configuration将实列对象注入IOC容器。
@Configuration
public class InterceporConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {Myintercepor myintercepor =new Myintercepor();//添加自定义的拦截器,配置拦截路径,并将实列对象注入IOC容器registry.addInterceptor(myintercepor).addPathPatterns("/intercepor/**");}
}-  区别 相同的:  过滤器(Filter)和拦截器(Interceptor)的核心功能都是对请求或响应进行处理或拦截 不同的:  过滤器通常用于过滤HTTP请求,例如通过检查请求参数、URL或头部信息来决定是否继续处理请求。 而拦截器则更常用于 拦截方法调用,例如在方法执行前后进行日志记录、权限检查等操作。
 使用场景、实现机制、适用框架、配置方式、性能影响等区别请详细参考深入理解过滤器(Filter)与拦截器(Interceptor)的区别。