SpringBoot虚拟路径映射

要求:访问:127.0.0.1/image/下的文件时,自动映射到真实路径:D:Files\。

复制代码
virtualFileDepositPath: /image/**
realityFileDepositPath: C:\Users\xin\Desktop\imgCreate\Files\
java 复制代码
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * 图片绝对地址与虚拟地址映射
 */

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Value("${realityFileDepositPath}")
    private String realityFileDepositPath;

    @Value("${virtualFileDepositPath}")
    private String virtualFileDepositPath;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler(virtualFileDepositPath)
                .addResourceLocations("file:" + realityFileDepositPath);
    }
}

这个Java类和重写的addResourceHandlers方法是用来实现Spring MVC中的虚拟路径映射功能的。

具体来说:

  1. 这个类继承了WebMvcConfigurerAdapter,这是一个Spring MVC的配置适配器类。
  2. 重写了addResourceHandlers方法,这个方法用来配置静态资源的处理。
  3. 在方法中,使用了registry.addResourceHandler来关联一个虚拟路径virtualFileDepositPath和一个实际磁盘路径realityFileDepositPath。
  4. 这样就实现了一个虚拟路径到实际磁盘路径的映射。
  5. 当外部用户访问虚拟路径时,会被映射到实际磁盘路径去查找资源。
  6. 这样可以隐藏真实文件的磁盘位置,并可以灵活重新组织文件目录结构。
  7. 对外部用户来说,只需要访问不变的虚拟路径就可以访问到文件资源,无需关心实际存放位置。

总之,这个类实现了Spring MVC中虚拟路径映射的功能,通过配置可以映射虚拟路径到实际磁盘路径,从而隐藏具体文件位置,改善外部访问方式。

相关推荐
极光代码工作室10 小时前
基于SpringBoot的在线博客系统
java·springboot·web开发·后端开发
我是唐青枫10 小时前
Java Spring Security 实战详解:从登录认证到 JWT 权限控制
java·spring
用户77139702070610 小时前
我在项目里发现了一个“神秘文件“——.editorconfig
后端
盏灯10 小时前
mac 外接磁盘,热更新失效
前端·后端
ihuyigui11 小时前
海外签收通知短信接口
android·java·开发语言·前端·数据库·后端
海棠Flower未眠11 小时前
SpringBoot 消息死信队列(荣耀典藏版)
java·数据库·spring boot
腾渊信息科技公司11 小时前
Spring Boot + TDengine:工业视觉检测数据实时同步方案实战
spring boot·后端·tdengine
暖和_白开水11 小时前
数据分析agent (七):contextvars 模块上下文request_id
java·前端·数据分析
用户409666013175111 小时前
MyBatis、MyBatis-Plus、通用 Mapper:一张图说清三者的血缘关系
后端
爬楼的猪11 小时前
WSL 的 GUI 为什么总是卡卡的
后端