it-swarm.com.de

Der Typ WebMvcConfigurerAdapter ist veraltet

Ich migriere einfach auf die Spring-MVC-Version 5.0.1.RELEASE, aber plötzlich wird in Eclipse STS WebMvcConfigurerAdapter als veraltet markiert

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/");
    }
  ....
  }

Wie kann ich das entfernen?

84
alveomaster

Seit Spring 5 müssen Sie lediglich die Schnittstelle WebMvcConfigurer implementieren:

public class MvcConfig implements WebMvcConfigurer {

Dies liegt daran, dass Java 8 Standardmethoden für Schnittstellen eingeführt hat, die die Funktionalität der WebMvcConfigurerAdapter-Klasse abdecken

Siehe hier:

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

169
Plog

Ich arbeite heute an der gleichwertigen Swagger-Dokumentationsbibliothek namens Springfox und fand heraus, dass das Interface WebMvcConfigurer im Frühjahr 5.0.8 (derzeit ausgeführt) von der Klasse WebMvcConfigurationSupport-Klasse implementiert wurde, die wir direkt erweitern können. 

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

public class WebConfig extends WebMvcConfigurationSupport { }

Und so habe ich es benutzt, um meinen Ressourcen-Handhabungsmechanismus folgendermaßen einzustellen: 

@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/");
}
4

Im Frühling wird jede Anforderung das DispatcherServlet durchlaufen. Um statische Dateianforderungen über DispatcherServlet (vorderer Controller) zu vermeiden, konfigurieren wir MVC Static content .

Frühling 3.1. führte ResourceHandlerRegistry ein, um ResourceHttpRequestHandlers für die Bereitstellung statischer Ressourcen aus dem Klassenpfad, dem WAR oder dem Dateisystem zu konfigurieren. Wir können ResourceHandlerRegistry programmgesteuert in unserer Web-Kontext-Konfigurationsklasse konfigurieren.

  • wir haben das /js/** -Muster zum ResourceHandler hinzugefügt. Fügen Sie die foo.js-Ressource ein, die sich im Verzeichnis webapp/js/ befindet
  • wir haben das /resources/static/** -Muster zum ResourceHandler hinzugefügt. Fügen Sie die foo.html-Ressource ein, die sich im Verzeichnis webapp/resources/ befindet
@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-Konfiguration

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

Spring Boot MVC Static Content, wenn sich die Datei im Ordner webapp/resources des WAR befindet.

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

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

Tun Sie dies mit Spring Boot 2.1.4.RELEASE (Spring Framework 5.1.6.RELEASE)

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();
    }

}
0
Do Nhu Vy