SpringBoot本地磁盘映射问题

 更新时间:2022年10月01日 11:20:15   作者:凉薄不凉薄啊  
这篇文章主要介绍了SpringBoot本地磁盘映射问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringBoot本地磁盘映射

出于安全性考虑,SpringBoot无法直接访问本地磁盘的文件。在某些应用场景下,需要访问例如本地的图片等一些内容。这时候,我们可以通过创建一个虚拟路径来指向本地磁盘文件。

重写WEB配置类,添加新的静态资源路径配置。

代码如下:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/watch/**").addResourceLocations("file:C://img/");
    }
}

这种方法相当于增加静态资源路径。SpringBoot本身自带的静态资源路径并不会被替代。

SpringBoot本地磁盘路径映射遇到的坑

今天学习了Springboot的磁盘映射,也就是将电脑上的D盘作为静态资源让用户可以通过IP或外网地址访问到,网上大多说的是继承 WebMvcConfigurerAdapter 但这个方法已经过时了,网上又有好多人说实现WebMvcConfigurer几口或者继承另一个类(忘了是啥了),我用的是实现WebMvcConfigurer,刚开始不知道怎么写,具体实现那个方法,就去网上查最后结果如下

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
public void  addResourceHandlers(ResourceHandlerRegistry registry){
    registry.addResourceHandler("/**").addResourceLocations("D:\\");
    WebMvcConfigurer.super.addResourceHandlers(registry);
}
}

这样死活访问不到页面一直报错404,纠结了一上午,偶然找到了一篇文章,上面是这样写的: 

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
public void  addResourceHandlers(ResourceHandlerRegistry registry){
    registry.addResourceHandler("/**").addResourceLocations("file:D:\\");
    WebMvcConfigurer.super.addResourceHandlers(registry);
}
}

复制过来之后,神奇的能访问到资源了,可能是由于视觉受IDEA方法属性的提示影响还是怎么着,一直以为file:是编辑软件的提示不用加,导致后来@value取值时以为取不到呢!现在记录下来预防自己以后再忘了 

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Value("${url.diskUrl}")
private String diskUrl;
public void  addResourceHandlers(ResourceHandlerRegistry registry){
    registry.addResourceHandler("/**").addResourceLocations(diskUrl);
    WebMvcConfigurer.super.addResourceHandlers(registry);
}
}

配置文件

url:
diskUrl: file:D:\
webUrl: http://localhost:8080/

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • Netty粘包拆包问题解决方案

    Netty粘包拆包问题解决方案

    这篇文章主要介绍了Netty粘包拆包问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • @ConfigurationProperties在IDEA中出现红色波浪线问题解决方法

    @ConfigurationProperties在IDEA中出现红色波浪线问题解决方法

    本文介绍了在Springboot项目中,当@ConfigurationProperties注解出现红色波浪线时的解决方法,文中有详细的解决方案供大家参考,需要的朋友可以参考下
    2024-09-09
  • java之minio文件服务器的日常操作

    java之minio文件服务器的日常操作

    本文介绍如何在Java项目中配置Minio服务,通过创建minioConfig和minioDto来管理连接信息,并通过minioUtils工具类实现文件的上传、下载和删除功能,详细说明了如何从application.yml文件中读取配置,并强调了避免static情况下minioDto为null的问题,另外,提到删除操作是延迟的
    2024-10-10
  • java 内部类的实例详解

    java 内部类的实例详解

    这篇文章主要介绍了java 内部类的实例详解的相关资料,希望通过本文大家能够理解掌握java内部类的使用,需要的朋友可以参考下
    2017-09-09
  • MyBatis拦截器动态替换表名的方法详解

    MyBatis拦截器动态替换表名的方法详解

    因为我们持久层框架更多地使用MyBatis,那我们就借助于MyBatis的拦截器来完成我们的功能,这篇文章主要给大家介绍了关于MyBatis拦截器动态替换表名的相关资料,需要的朋友可以参考下
    2022-04-04
  • 如何通过JVM角度谈谈Java的clone操作

    如何通过JVM角度谈谈Java的clone操作

    java中仅有的创建对象的两种方式:①.使用new操作符创建对象;②.使用clone方法复制对象。下面这篇文章主要通过JVM角度给大家详细谈谈Java的clone操作的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-06-06
  • IDEA远程部署调试Java应用程序的详细流程

    IDEA远程部署调试Java应用程序的详细流程

    这篇文章主要介绍了IDEA远程部署调试Java应用程序,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • java byte数组与int,long,short,byte的转换实现方法

    java byte数组与int,long,short,byte的转换实现方法

    下面小编就为大家带来一篇java byte数组与int,long,short,byte的转换实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • IDEA如何设置SVN提交忽略文件 target.iml

    IDEA如何设置SVN提交忽略文件 target.iml

    使用IDEA的SVN插件时,可能会遇到提交不必要文件的问题,解决这个问题有两种方法:第一种是在IDEA设置中的File Types下的Ignore files and folders添加需要忽略的文件或文件夹;第二种是使用SVN客户端TortoiseSVN,在项目目录点击右键选择properties
    2024-10-10
  • Response.AddHeader案例讲解

    Response.AddHeader案例讲解

    这篇文章主要介绍了Response.AddHeader案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论