124 votes

Le type WebMvcConfigurerAdapter est obsolète

Je viens de migrer vers la version de mvc 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 enlever cela!

249voto

Plog Points 5142

Depuis le Printemps 5, vous avez juste besoin d'implémenter l'interface WebMvcConfigurer:

public class MvcConfig implements WebMvcConfigurer {

C'est parce que Java 8 introduit des méthodes par défaut sur les interfaces qui couvrent les fonctionnalités de l' WebMvcConfigurerAdapter classe

Voir ici:

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

11voto

Aniruddha Tekade Points 164

Je travaille sur la bibliothèque de documentation équivalente Swagger appelée Springfox nos jours et j'ai constaté que dans Spring 5.0.8 (fonctionnant actuellement), l'interface WebMvcConfigurer avait été implémentée par la classe WebMvcConfigurationSupport classe que nous pouvons directement étendre.

 import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

public class WebConfig extends WebMvcConfigurationSupport { }
 

Et voici comment je l'ai utilisé pour configurer mon mécanisme de traitement 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/");
}
 

1voto

Yash Points 4565

Au Printemps de chaque demande de passer par la DispatcherServlet. Pour éviter les demande de dossier par DispatcherServlet(Avant contolleur), nous configurons la MVC du contenu Statique.

Printemps 3.1. introduit le ResourceHandlerRegistry pour configurer ResourceHttpRequestHandlers pour servir des ressources statiques du chemin de classe, la GUERRE, ou le système de fichiers. Nous pouvons configurer les ResourceHandlerRegistry par programmation à l'intérieur de notre contexte web de configuration de la classe.

  • nous avons ajouté l' /js/** motif à la ResourceHandler, permet d'inclure l' foo.js de la ressource située à l' webapp/js/ annuaire
  • nous avons ajouté l' /resources/static/** motif à la ResourceHandler, permet d'inclure l' foo.html de la ressource située à l' webapp/resources/ annuaire
@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());
    }
}

XML de Configuration

<mvc:annotation-driven />
  <mvc:resources mapping="/staticFiles/path/**" location="/staticFilesFolder/js/"
                 cache-period="60"/>

Printemps de Démarrage MVC Contenu Statique si le fichier est situé dans la GUERRE de la webapp/ressources dossier.

spring.mvc.static-path-pattern=/resources/static/**

1voto

dovy Points 358

Utilisez org.springframework.web.servlet.config.annotation.WebMvcConfigurer

Avec Spring Boot 2.1.4.RELEASE (Spring Framework 5.1.6.RELEASE), faites comme ceci

 package vn.bkit;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; // Deprecated.
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
public class MvcConfiguration implements WebMvcConfigurer {

    @Bean
    public ViewResolver getViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/");
        resolver.setSuffix(".html");
        return resolver;
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X