tutorial mvc initializr example español java spring spring-mvc

java - initializr - El tipo WebMvcConfigurerAdapter está en desuso



spring mvc vs spring boot (4)

Desde Spring 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

Mira aquí:

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

Acabo de migrar a Spring 5.0.1.RELEASE versión 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 eliminar esto?


En primavera, cada solicitud pasará por el DispatcherServlet . Para evitar la solicitud de archivos estáticos a través de DispatcherServlet (controlador frontal) configuramos el contenido estático de MVC .

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

  • hemos agregado el patrón /js/** al ResourceHandler, foo.js recurso foo.js ubicado en el directorio foo.js webapp/js/
  • hemos agregado el patrón /resources/static/** al ResourceHandler, foo.html recurso foo.html ubicado en el directorio 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()); } }

Configuración XML

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

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

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


He estado trabajando en la biblioteca de documentación equivalente de Swagger llamada Springfox hoy en día y descubrí que en Spring 5.0.8 (actualmente en ejecución), la interfaz WebMvcConfigurer ha sido implementada 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/"); }


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

Con Spring Boot 2.1.4.RELEASE (Spring Framework 5.1.6.RELEASE), haga esto

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