要求:访问: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中的虚拟路径映射功能的。
具体来说:
- 这个类继承了WebMvcConfigurerAdapter,这是一个Spring MVC的配置适配器类。
- 重写了addResourceHandlers方法,这个方法用来配置静态资源的处理。
- 在方法中,使用了registry.addResourceHandler来关联一个虚拟路径virtualFileDepositPath和一个实际磁盘路径realityFileDepositPath。
- 这样就实现了一个虚拟路径到实际磁盘路径的映射。
- 当外部用户访问虚拟路径时,会被映射到实际磁盘路径去查找资源。
- 这样可以隐藏真实文件的磁盘位置,并可以灵活重新组织文件目录结构。
- 对外部用户来说,只需要访问不变的虚拟路径就可以访问到文件资源,无需关心实际存放位置。
总之,这个类实现了Spring MVC中虚拟路径映射的功能,通过配置可以映射虚拟路径到实际磁盘路径,从而隐藏具体文件位置,改善外部访问方式。