在使用拦截器时,在配置拦截器的时候,由于在 Spring Boot 2.0 之前,我们都是直接继承 WebMvcConfigurerAdapter 类,然后重写 addInterceptors 方法来实现拦截器的配置。但是在 Spring Boot 2.0 之后,该方法已经被废弃了(当然,也可以继续用),取而代之的是 WebMvcConfigurationSupport 方法,如下
@Configuration
public class MyInterceptorConfig extends WebMvcConfigurationSupport {@Overrideprotected void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");super.addInterceptors(registry);}
}
但是,我们会发现会发现一个缺陷,那就是静态资源被拦截了。项目中集成了thymeleaf,使用th:src="/xxx/xxx"这些获取静态资源的方法便会被拦截,这就需要我们手动将静态资源放开。
即除了在 MyInterceptorConfig 配置类中重写 addInterceptors 方法,还需要再重写一个方法 addResourceHandlers,用来将静态资源放开:
/*** 用来指定静态资源不被拦截,否则继承WebMvcConfigurationSupport这种方式会导致静态资源无法直接访问* @param registry*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");super.addResourceHandlers(registry);
}

当然还有更简单的方法,就是我们可以不继承 WebMvcConfigurationSupport 类,直接实现 WebMvcConfigurer 接口,然后重写 addInterceptors 方法,将自定义的拦截器添加进去即可

@Configuration
public class MyInterceptorConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 实现WebMvcConfigurer不会导致静态资源被拦截registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");}
}```

Springboot 中配置拦截器之后突然出现No mapping for GET xxxx相关推荐

  1. SpringBoot中配置拦截器时,跨域失效

    SpringBoot中配置拦截器时,跨域失效 前后段分离的项目,配置了跨域后,访问正常,但是配置了拦截器以后,有的访问正常,有的出现跨域问题,发现出现跨域问题的都是拦截器里面没有放行的请求. @Con ...

  2. springboot 添加拦截器之后中文乱码_springboot中配置了拦截器后,拦截器无效的解决方案之一...

    springboot的启动类xxxApplication不能扫描到拦截器配置类,可加上@ComponentScan(basePackages={"com.maya.common"} ...

  3. springboot中配置了拦截器后,拦截器无效的解决方案之一

    springboot中配置了拦截器后,拦截器无效的解决方案之一 参考文章: (1)springboot中配置了拦截器后,拦截器无效的解决方案之一 (2)https://www.cnblogs.com/ ...

  4. SpringBoot中配置为开发模式,代码修改后不用重新运行

    场景 SpringBoot中配置为开发模式,修改代码后不用重新运行. 实现 打开pom.xml,添加依赖 <!-- 添加如下依赖,配置为开发模式,代码做了修改,不用重新运行--><! ...

  5. 【springboot中使用拦截器】

    1.拦截器原理 1.定义拦截器: 2.配置拦截器 3.解决静态资源被拦截 2.拦截器使用实例 2.1判断用户有没有登录 2.2取消拦截操作 1.拦截器原理 拦截器的原理很简单,是AOP 的一种实现,专 ...

  6. 关于解决SpringBoot中使用redirect重定向后,页面跳转后ulr地址后面出现jsessionid=xxxxxxx的问题

    关于解决SpringBoot中使用redirect重定向后,页面跳转后ulr地址后面出现jsessionid=xxxx的问题 参考链接:https://blog.csdn.net/zshake/art ...

  7. Springboot+Maven在IDEA中配置好Maven后执行Reimport时提示:com.google.inject.internal.Errors.throwCreationExceptio

    场景 在下载安装了并在IDEA中配置Maven之后,在IDEA新建了SpringBoot项目后,进行导入依赖时提示 com.google.inject.CreationException: Unabl ...

  8. springboot中的拦截器interceptor和过滤器filter,多次获取request参数

    大家好,我是烤鸭:     这是一篇关于springboot的拦截器(interceptor)和过滤器(Filter). 先说一下过滤器和拦截器. 区别: 1. servlet请求,顺序:Filter ...

  9. springboot中配置多数据源mybatisPlus

    文章目录 1 背景 2 版本 3 配置 3.1 pom配置 3.1.1 父类pom 3.1.2 pom依赖 3.1.3 插件 3.2 application.yml配置 3.3 启动类配置 4 使用 ...

最新文章

  1. delphi xe 文件服务器,DelphiXE7中创建WebService(服务端+客户端)
  2. 微生物组助手——最易学的扩增子、宏基因组分析流程
  3. python程序设计报告-20191206 实验二《Python程序设计》实验报告
  4. armel、armhf、arm64、armv7l 系统架构区别与联系(AArch64)
  5. VSTS 离线源码版本辅助工具
  6. Snabbdom(虚拟dom-6-createElm函数)
  7. centos 修改密码_openstack Train版部署——基于centos系统(四)
  8. ++代码实现 感知机的原理_决策树ID3原理及R语言python代码实现(西瓜书)
  9. Springboot在线电影系统实战开发
  10. 今天聊:做好前端的 10 个习惯
  11. java序列化层数_java序列化详解
  12. __declspec(novtable)有什么作用
  13. 监视器(monitor)
  14. python中队列的应用用场景_消息队列使用的四种场景介绍
  15. 用Python快速实现YOLO目标检测
  16. NumberOptional:一个字符串转数字的工具
  17. matplotlib plot函数使用详解
  18. 转盘抽奖角度计算 前端
  19. Matlab中imag函数用法
  20. 清华大学下属机构一栏

热门文章

  1. SecureCRT 使用技巧
  2. Java获取ajax数据_使用Ajax简单获取数据
  3. Token原理以及应用
  4. 数据类型(Data Type)
  5. oracle管理 | 表空间权限管控
  6. DiskFileUpload + BeanUtils 轻松实现无框架文件上传表单取值
  7. 纵论WebAssembly.js在性能逆境下的召唤强援
  8. php js 获取 客户端ip地址,JS获取客户端IP地址、MAC和主机名的7个方法汇总_javascript技巧...
  9. Go工具之generate
  10. siri接入易微联_拓展生态链接新航道 酷宅科技易微联从本质出发