SpringBoot2.x使用拦截器(新旧版本导致有坑)

SpringBoot1.x添加拦截器

1、写一个类,继承WebMvcConfigurerAdapter抽象类。
2、重写addInterceptors方法,调用registry.addInterceptor把拦截器添加进去。
3、这个类也记得添加上@Configuration或者@SpringBootConfiguration注解。

SpringBoot2.x添加拦截器

1、因为SpringBoot2.x对应的是Spring5.x,而Spring5.0以后,WebMvcConfigurerAdapter已经过时了。


WebMvcConfigurerAdapter过时

2、这时我们可以继承WebMvcConfigurationSupport或者实现WebMvcConfigurer接口。
这时候,大坑来了:
一旦继承WebMvcConfigurationSupport后就会出现新的问题,会
发现Spring Boot的WebMvc自动配置失效,具体表现比如访问不
到静态资源(js,css等)了,这是因为WebMvc的自动配置都在
WebMvcAutoConfiguration类中,但是类中有这个注解
@ConditionalOnMissingBean({WebMvcConfigurationSupport.clas
s}),意思是一旦在容器中检测到WebMvcConfigurationSupport这
个类,WebMvcAutoConfiguration类中的配置都不生效。所以一
旦我们自己写的配置类继承了WebMvcConfigurationSupport,相
当于容器中已经有了WebMvcConfigurationSupport,所以默认配
置都不会生效,都得自己在配置文件中配置。


WebWebMvcAutoConfiguration

3、所以最后我还是推荐实现WebMvcConfigurer接口来添加拦截器


WebMvcConfigurer

4、测试访问静态资源,那是没问题的


static
luff.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,810评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,118评论 6 342
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,743评论 1 92
  • 1.运动 散步3公里,俯卧撑100 2.睡眠 深度3小时00分 浅度4小时55分 3.读书 ,人类简史 4.练字 ...
    新的一年1阅读 1,099评论 0 0
  • 记得你最喜雨季,听雨打石地,雨落檐下汇成溪!
    花氏一族阅读 1,292评论 0 0

友情链接更多精彩内容