복붙노트

[SPRING] WebMvcConfigurerAdapter 유형은 사용되지 않습니다.

SPRING

WebMvcConfigurerAdapter 유형은 사용되지 않습니다.

난 그냥 봄 MVC 버전 5.0.1.RELEASE로 마이 그 레이션하지만 갑자기 이클립스에서 STS WebMvcConfigurerAdapter는 사용 중지됨으로 표시됩니다

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

어떻게하면 이것을 제거 할 수 있습니까!

해결법

  1. ==============================

    1.Spring 5부터 WebMvcConfigurer 인터페이스를 구현하면된다.

    Spring 5부터 WebMvcConfigurer 인터페이스를 구현하면된다.

    public class MvcConfig implements WebMvcConfigurer {
    

    이것은 Java 8이 WebMvcConfigurerAdapter 클래스의 기능을 다루는 인터페이스에 기본 메소드를 도입했기 때문입니다

    여길 봐:

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

  2. ==============================

    2.스프링웨어 (Springfox)라고 불리는 동등한 문서 라이브러리에 대한 작업을 해왔습니다. 스프링 5.0.8 (현재 실행 중)에서 인터페이스 WebMvcConfigurer가 직접 확장 할 수있는 클래스 WebMvcConfigurationSupport 클래스에 의해 구현되었습니다.

    스프링웨어 (Springfox)라고 불리는 동등한 문서 라이브러리에 대한 작업을 해왔습니다. 스프링 5.0.8 (현재 실행 중)에서 인터페이스 WebMvcConfigurer가 직접 확장 할 수있는 클래스 WebMvcConfigurationSupport 클래스에 의해 구현되었습니다.

    import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
    
    public class WebConfig extends WebMvcConfigurationSupport { }
    

    그리고 이것은 다음과 같이 리소스 처리 메커니즘을 설정하는 데 사용 된 방법입니다.

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

    3.Spring에서는 모든 요청이 DispatcherServlet을 통해 처리됩니다. DispatcherServlet (Front contoller)을 통해 정적 파일 요청을 피하기 위해 MVC 정적 컨텐츠를 구성합니다.

    Spring에서는 모든 요청이 DispatcherServlet을 통해 처리됩니다. DispatcherServlet (Front contoller)을 통해 정적 파일 요청을 피하기 위해 MVC 정적 컨텐츠를 구성합니다.

    Spring 3.1. 클래스 경로, WAR 또는 파일 시스템에서 정적 자원을 제공하기 위해 ResourceHandlerRegistry를 구성하여 ResourceHttpRequestHandlers를 구성했습니다. 웹 컨텍스트 구성 클래스 내에 프로그래밍 방식으로 ResourceHandlerRegistry를 구성 할 수 있습니다.

    @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 구성

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

    봄 부팅 MVC 정적 콘텐츠 파일이 WAR의 webapp / resources 폴더에있는 경우입니다.

    spring.mvc.static-path-pattern=/resources/static/**
    
  4. from https://stackoverflow.com/questions/47552835/the-type-webmvcconfigureradapter-is-deprecated by cc-by-sa and MIT license