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

本文详细介绍如何在SpringBoot1.x和2.x中正确配置拦截器,包括避免因使用WebMvcConfigurationSupport导致的静态资源访问问题,推荐使用WebMvcConfigurer接口进行配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot1.x添加拦截器

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

SpringBoot2.x添加拦截器

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

 

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

 

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

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值