Требование: при доступе к файлам по адресу: 127.0.0.1/image/ он автоматически сопоставляется с реальным путем: D:Files\.
virtualFileDepositPath: /image/**
realityFileDepositPath: C:\Users\xin\Desktop\imgCreate\Files\
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, который используется для настройки обработки статических ресурсов.
- В этом методе реестр.addResourceHandler используется для связывания виртуального пути virtualFileDepositPath и фактического пути к диску RealityFileDepositPath.
- Это обеспечивает сопоставление виртуального пути с реальным путем к диску.
- Когда внешние пользователи получают доступ к виртуальному пути, он будет сопоставлен с фактическим путем к диску для поиска ресурсов.
- Это позволяет скрыть расположение реальных файлов на диске и гибко реорганизовать структуру каталогов файлов.
- Внешним пользователям достаточно получить доступ только к неизмененному виртуальному пути для доступа к файловым ресурсам, не заботясь о фактическом местоположении хранилища.
Короче говоря, этот класс реализует функцию сопоставления виртуального пути в Spring MVC.Посредством настройки виртуальный путь может быть сопоставлен с фактическим путем к диску, тем самым скрывая конкретное расположение файла и улучшая методы внешнего доступа.