- Spring Boot/Java
- ресурс пути к классу, например /src/main/resources/source_dir/source_file.yaml
- этот файл должен быть отображается в URL-адресе http://localhost:8080/target_dir/target_file.yaml
Я знаю, что есть способ сопоставить каталог пути к классам с веб-путем, настроив ResourceHandlerRegistry, но это не работает для одного ресурса, и вы не можете дать у ресурса другое название:
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/target_dir/**")
.addResourceLocations("classpath:/source_dir/");
}
В настоящее время я использую трюк с пересылкой в контроллере, чтобы файл можно было сопоставить, но это некрасиво:
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/target_dir/target_file.yaml")
.setViewName("forward:/source_dir/source_file.yaml");
}
На самом деле я ожидал, что код, подобный приведенному ниже, будет работать, но, согласно исходному коду Spring, он может обрабатывать только каталоги:
// is not working with Spring Boot
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/target_dir/target_file.yaml")
.addResourceLocations("classpath:/source_dir/source_file.yaml");
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... pring-boot
Мобильная версия