El tipo WebMvcConfigurerAdapter está obsoleto


Acabo de migrar a la versión mvc de primavera 5.0.1.RELEASE pero de repente en eclipse STS WebMvcConfigurerAdapter está marcado como obsoleto

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

¡Cómo puedo quitar esto!

Author: Plog, 2017-11-29

3 answers

Desde la primavera 5 solo necesita implementar la interfaz WebMvcConfigurer:

public class MvcConfig implements WebMvcConfigurer {

Esto se debe a que Java 8 introdujo métodos predeterminados en las interfaces que cubren la funcionalidad de la clase WebMvcConfigurerAdapter

Ver aquí:

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

 126
Author: Plog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-01 14:50:14

He estado trabajando en la biblioteca de documentación equivalente de Swagger llamada Springfox hoy en día y encontré que en la Primavera 5.0.8 (que se ejecuta en la actualidad), interfaz WebMvcConfigurer ha sido implementado por la clase WebMvcConfigurationSupport que podemos extender directamente.

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

public class WebConfig extends WebMvcConfigurationSupport { }

Y así es como lo he usado para configurar mi mecanismo de manejo de recursos de la siguiente manera -

@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/");
}
 2
Author: Aniruddha Tekade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-26 19:35:30

En primavera cada solicitud pasará por el DispatcherServlet. Para evitar la solicitud de archivos estáticos a través de DispatcherServlet(Front contoller) configuramos MVC Static content.

Primavera 3.1. introdujo el ResourceHandlerRegistry para configurar ResourceHttpRequestHandlers para servir recursos estáticos desde classpath, WAR o el sistema de archivos. Podemos configurar el ResourceHandlerRegistry programáticamente dentro de nuestra configuración de contexto web clase.

  • hemos añadido la /js/** pattern to the ResourceHandler, lets include the foo.js resource located in the webapp/js/ directorio
  • hemos añadido la /resources/static/** pattern to the ResourceHandler, lets include the foo.html resource located in the webapp/resources/ directorio
@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());
    }
}

Configuración XML

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

Spring Boot MVC Contenido estático si se encuentra el archivo en la carpeta webapp/resources de the WAR.

spring.mvc.static-path-pattern=/resources/static/**
 0
Author: Yash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-09 09:06:10