Il est souvent nécessaire d’exposer des ressources statiques telles que des images, des fichiers pdf, des vidéos, etc. dans une application web. Ces fichiers sont stockés sur le serveur et ne sont donc pas accessibles à l’utilisateur via une URL.
L’objectif de cet article est d’exposer des fichiers stockés sur le serveur via une URL dans une application Spring MVC.
Surcharge de la configuration web
Pour exposer des ressources statiques, il faut surcharger la configuration web de Spring MVC.
Pour ce faire, une classe de configuration qui hérite de WebMvcConfigurerAdapter
doit être implémentée.
Plus précisément, il est nécessaire de surcharger la méthode addResourceHandlers()
.
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
private static final String DIRECTORY = "/path/to/server/disk/resources";
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**") // 1
.addResourceLocations("file:///" + DIRECTORY + "/"); // 2
}
}
La méthode de configuration fournit un objet de type ResourceHandlerRegistry
qui permet d’associer une URL (1
) à un dossier (2
). Ainsi, l’URL http://example.com/resources/file.pdf
sera associée au fichier /path/to/server/disk/resources/file.pdf
.
Conclusion
Pour conclure, Spring permet d’exposer des ressources statiques via des URL de manière simple et rapide.