Я хочу, чтобы мои пользователи могли загружать изображения, которые затем сохраняются на сервере.Поскольку размещение этих изображений в папке ресурсов ресурсов / static-папок приведет к их удалению при каждом новом развертывании, которое я хочу сохранить и получить доступ к этим изображениям вне моего приложения Spring.
Мне все еще нужно отображать изображения в моем html-Контекст, поэтому я пытаюсь сопоставить путь (например, «userimages») с местоположением за пределами моего приложения (например, «/ home / userimages /»), чтобы при отображении URL localhost: 8080 / userimages / hi.jpgвызвано изображение из /home/userimages/hi.jpg.
Я нашел функцию addResourceHandlers, которая, кажется, в состоянии сделать именно это, но у меня возникают проблемы с ее реализацией. Для начала я не уверен,расширить WebMvcConfigurationSupport или WebMvcConfigurationAdapter или реализовать WebMvcConfigurer. Кажется, ни один из них не работает. Я также пробовал использовать различные @ над этим классом, такие как @EnableWebMvc и т. д. - ничего не изменилось. Некоторые сайты предлагали перенести класс в тот же пакет, что и приложение - также не сделалит работы.
Я думаю, чтоt функция addResourceHandlers даже не вызывается, и я не знаю, как это сделать.В настоящее время это мой код:
package global;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
@EnableWebMvc
public class StaticResourceProvider implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//This never gets printed
System.out.print("Adding resource handler");
registry
.addResourceHandler("/user-images/**")
//for Unix: file:/opt/files
//TODO: use path variable here
.addResourceLocations("file:///C:/Users/Juliette/Pictures/");
}
}
И точка входа в мое приложение:
package controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
//TODO: remove the first array element and read it as the name of this instance
SpringApplication.run(Application.class, args);
}
}
Может кто-нибудь сказать мне, в чем моя ошибка?В настоящее время, когда я обращаюсь к localhost: 8080 / user-images / nameOfSomeImage.jpg, возвращается только белая страница, и в журнале сервера не появляется никаких сообщений.