Je viens de migrer vers spring version 5.0.1.RELEASE
mais soudainement dans eclipse STS WebMvcConfigurerAdapter est marqué comme obsolète
public class MvcConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); // to serve static .html pages... registry.addResourceHandler("/static/**").addResourceLocations("/resources/static/"); } .... }
Comment puis-je supprimer cela!
Depuis Spring 5, il vous suffit d’implémenter l’interface WebMvcConfigurer
:
public class MvcConfig implements WebMvcConfigurer {
En effet, Java 8 a introduit des méthodes par défaut sur les interfaces qui couvrent les fonctionnalités de la classe WebMvcConfigurerAdapter
.
Vois ici:
Je travaille actuellement sur la bibliothèque de documentation équivalente de Swagger, appelée Springfox
et j’ai constaté qu’au spring 5.0.8 (en cours d’exécution), l’interface WebMvcConfigurer
a été implémentée par la classe WebMvcConfigurationSupport
que nous pouvons étendre directement.
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; public class WebConfig extends WebMvcConfigurationSupport { }
Et c’est ainsi que je l’ai utilisé pour définir mon mécanisme de gestion des ressources comme suit –
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); }
Au spring, chaque requête passe par le DispatcherServlet . Pour éviter la demande de fichier statique via DispatcherServlet (Front contoller), nous configurons le contenu statique MVC .
Printemps 3.1. introduit ResourceHandlerRegistry pour configurer ResourceHttpRequestHandlers afin de servir des ressources statiques à partir du classpath, du WAR ou du système de fichiers. Nous pouvons configurer ResourceHandlerRegistry par programmation dans notre classe de configuration de contexte Web.
- nous avons ajouté le modèle
/js/**
au ResourceHandler, incluons la ressourcefoo.js
située dans lewebapp/js/
- nous avons ajouté le modèle
/resources/static/**
au ResourceHandler, incluons la ressourcefoo.html
située dans lewebapp/resources/
@Configuration @EnableWebMvc public class StaticResourceConfiguration implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { System.out.println("WebMvcConfigurer - addResourceHandlers() function get loaded..."); registry.addResourceHandler("/resources/static/**") .addResourceLocations("/resources/"); registry .addResourceHandler("/js/**") .addResourceLocations("/js/") .setCachePeriod(3600) .resourceChain(true) .addResolver(new GzipResourceResolver()) .addResolver(new PathResourceResolver()); } }
Configuration XML
Spring Boot MVC Static Content si le fichier se trouve dans le dossier webapp / resources de WAR.
spring.mvc.static-path-pattern=/resources/static/**