Edgar Edgar - 1 month ago 11
Java Question

Spring get files and images from external folder on disk, outside webapps?

I have webproject which has images inside src/main/webapp folder. I would like to place images in different folder on the disk. But I have no idea how to manage requests to reach this images.
Should I create some kind of

httpServlet
like shown here: http://balusc.omnifaces.org/2007/07/fileservlet.html

Or as I use Spring MVC with java configuration, there is more suitable and simpler way.

Looking forward for your suggestions.

Answer

Use the spring mvc support for static resources, its location attribute is an Spring Resource, so you could use file: prefix

<resources mapping="/resources/**" location="file:/my/external/directory/" />

or

@Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**")
            .addResourceLocations("file:/my/external/directory/");
}

}

@See Spring Reference Chapter 6.4 The ResourceLoader for a table that list all prefixed for resources