SpringBoot добавить статическую пользовательскую папку

#spring-boot #configuration #static #staticresource

#весенняя загрузка #конфигурация #статический #staticresource

Вопрос:

Я использую SpringBoot 2.1.3. Я хотел бы сохранить некоторый файл внутри статической папки, чтобы получить к нему доступ просто:

 localhost:8080/[filename]
  

По умолчанию Spring boot обслуживает статическое содержимое из одного из следующих местоположений в пути к классу:

 1) /static
2) /public
3) /resources
4) /META-INF/resources
  

По сути, если я создам общую папку внутри моего проекта classpath:

введите описание изображения здесь

и поместите file.txt внутри него, запуская приложение, я могу визуализировать файл с указанным выше путем.

Погуглив, я выяснил, как добавить пользовательскую статическую папку двумя способами. Первый по application.properties:

 spring.resources.static-locations=classpath:/documents/
  

но даже если я создал папку documents в том же месте, где находится public folder, я не могу получить доступ к файлу по пути:

 localhost:8080/[filename]
  

Второй способ — это конфигурация java @Bean:

 @Configuration
@EnableWebMvc
public class AppConfiguration implements WebMvcConfigurer {
 @Bean
 WebMvcConfigurer configurer () {
    return new WebMvcConfigurerAdapter() {
        @Override
        public void addResourceHandlers (ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/pages/**").
                      addResourceLocations("classpath:/documents/");
        }
    };
 }
}
  

и теперь, если я попытаюсь получить свой ресурс с:

 localhost:8080/pages/[filename]
  

не работает вообще..

Любой намек??

Спасибо всем

Комментарии:

1. путь к классу: указывает на src main resources

2. Спасибо. достаточно было написать spring.resources.static-locations=/documents/ и это работает.. но теперь проблема в том, что эта директива перезаписывает другие статические папки по умолчанию. Я больше не могу добраться до всех остальных папок, чем думаю, что буду использовать стандартные.