zoukankan      html  css  js  c++  java
  • “WebMvcConfigurerAdapter is deprecated”解决方法

      原来的一个小项目采用的是 Springboot 1.5.2 的老版本了,在对图片调用时设置虚拟目录时使用的了 WebMvcConfigurerAdapter,这次新建项目使用了 Springboot 2.2.1 的版本,同样在设置虚拟目录时发现并没有生效,在配置类里面提示 WebMvcConfigurerAdapter 已经被弃用了(如下图),所以记录一下。

      这里先贴一下之前的代码,使得在通过访问 "/upload/img/xxx.jpg" 路径时找到对应在C盘的 upload/image 文件夹下的图片。

    @Configuration
    public class StaticMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/upload/img/**").addResourceLocations("file:C:/upload/img/");
            super.addResourceHandlers(registry);
        }
    }

      于是在简单了解后改用 WebMvcConfigurationSupport,配置方法与 WebMvcConfigurerAdapter 基本一致:

    @Configuration
    public class StaticMvcConfigurer extends WebMvcConfigurationSupport {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/upload/img/**")
                    .addResourceLocations("file:C:/upload/img/");
            super.addResourceHandlers(registry);
        }
    }

      重启后,图片确实能访问到,但是在打开其他页面时 js/css 等静态资源均无法访问,控制台提示 “No mapping for GET”。在使用 WebMvcConfigurationSupport 后,WebMvcAutoConfiguration类就不会自动配置,所以需要再加一行配置:

    @Configuration
    public class StaticMvcConfigurer extends WebMvcConfigurationSupport {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/**")
                    .addResourceLocations("classpath:/static/")
                    .addResourceLocations("classpath:/resources/");
            registry.addResourceHandler("/upload/img/**")
                    .addResourceLocations("file:C:/upload/img/");
            super.addResourceHandlers(registry);
        }
    }

      我的静态资源放在了项目的resourcesstatic目录下,重新启动后,js等静态资源加载正常,图片也能正常访问。值得注意的是,再写对应目录时必须以 “/” 结尾(上方标记红色处),否则无法访问到。另外,通过实现WebMvcConfigurer接口,同样可以实现。

  • 相关阅读:
    Google官方教程之Selling In-app Products
    In-app Billing 概述
    Android SDK和ADT无法更新的解决办法
    在NGUI中高效优化UIScrollView之UIWrapContent的简介以及使用
    cocos2d-x 3.1 编译脚本android-build.py
    Storm---DirectGroup(直接分组)
    Lucene Spatial构建地理空间索引
    Log4j2日志配置
    Guava缓存使用
    Maven 多套环境配置
  • 原文地址:https://www.cnblogs.com/shenyuanfeng/p/13449804.html
Copyright © 2011-2022 走看看