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中虚拟路径映射的功能,通过配置可以映射虚拟路径到实际磁盘路径,从而隐藏具体文件位置,改善外部访问方式。

相关推荐
云烟成雨TD12 小时前
Spring AI Alibaba 1.x 系列【52】Interrupts 中断机制:节点执行前后静态中断
java·人工智能·spring
回家路上绕了弯12 小时前
AgentScope Java实战博客:从入门到落地,解锁智能代理开发新范式
后端
疯狂成瘾者12 小时前
Spring Boot 项目中的 SMTP 邮件验证码服务技术解析
java·spring boot·后端
y = xⁿ12 小时前
Java并发八股学习日记
java·开发语言·学习
阿苟12 小时前
消息队列重点详解
后端·面试
xifangge202513 小时前
【深度排障】从 OS 底层寻址剖析 javac 不是内部或外部命令 核心报错:变量空间隔离与自动化部署终极范式
java·开发语言·jdk·自动化
RustCoder13 小时前
MangoFetch:一个用 Rust 写的 CLI/TUI 高性能的下载工具
后端·rust·开源
肖恩想要年薪百万13 小时前
JSP中常用JSTL标签
java·开发语言·状态模式
程序员清风13 小时前
AI开发岗该如何准备面试?
java·后端·面试
笨拙的老猴子13 小时前
Spring AI 实战教程(七):Agent 智能体 —— 用电商购物助手学透自主规划与工具执行
java·人工智能·spring