springboot2.0、spring5.0 拦截器配置WebMvcConfigurerAdapter过时使用WebMvcConfigurationSupport来代替 新坑

在springboot2.0之前 我们都是 继承 WebMvcConfigurerAdapter 来实现拦截器的配置。重写addInterceptors方法

    @Override
    protected void addInterceptors(InterceptorRegistry registry) {

    }

但是已被废弃 我们使用继承WebMvcConfigurationSupport来替代(包含了WebMvcConfigurerAdapter,以及更多的扩展),使用这个类的时候要注意一些地方:

我们都知道在使用spring boot映射静态资源路径的时候可以在application.properties中添加配置

spring.mvc.static-path-pattern = /sh/static/**

这种写法在2.0之前 也就是在WebMvcConfigurerAdapter没有废弃 搭配使用的话是没有问题的(测试过是没有问题的),

但是在项目中我刚刚好用到了WebMvcConfigurationSupport类来配置拦截器,这时候启动项目时会发现映射根本没有成功,也就是说application.properties中添加配置的映射配置没有启动作用,然后我们会想到重写来进行映射:

@Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("/sh/static/**").addResourceLocations("classpath:/static/");

        super.addResourceHandlers(registry);
    }

用过这种方法来配合WebMvcConfigurationSupport配置拦截器和过滤器好像就没有问题了(测试过没有问题)

总结:大家在使用2.0版本的springboot的时候 使用WebMvcConfigurationSupport类配置拦截器时一定要重写addResourceHandlers来实现静态资源的映射,不要使用application.properties中添加配置来实现映射,不然资源会映射不成功导致打开页面资源一直加载不到。会出现下面这种奇怪的问题

(如果有错误,欢迎大家指出,具体什么原因还在了解中,欢迎大家留言!)

更新:之前有人说配置了之后spring的自动配置会失效 ,如果要使用自动配置的话 可以实现 WebMvcConfigurer接口
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值