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接口,同样可以实现。

  • 相关阅读:
    python学习笔记(二)-字符串方法
    python学习笔记(一)-基础知识
    Charles抓包工具断点修改返回内容
    Charles抓包工具过滤网络请求
    Jmeter通过正则表达式提取器提取响应结果数据
    【PHP】什么时候使用Try Catch(转)
    【tp5.1】七牛云上传图片
    【PHP】统计问卷调查结果的选项票数和百分比
    【tp5.1】composer安装PHPExcel以及导入导出Excel
    【tp5.1】微信公众号授权登录及获取信息录入数据库
  • 原文地址:https://www.cnblogs.com/shenyuanfeng/p/13449804.html
Copyright © 2011-2022 走看看