美文网首页
SpringBoot2.x使用拦截器(新旧版本导致有坑)

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

作者: Howinfun | 来源:发表于2018-11-14 16:58 被阅读0次

    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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/qemjfqtx.html