Le type WebMvcConfigurerAdapter est obsolète

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:

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurerAdapter.html

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 ressource foo.js située dans le webapp/js/
  • nous avons ajouté le modèle /resources/static/** au ResourceHandler, incluons la ressource foo.html située dans le webapp/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/**