programing

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

newsource 2022. 10. 27. 21:51

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

이거 어떻게 지워!

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

스웨거에 상당하는 문서 라이브러리를 연구해 왔습니다SpringfoxSpring 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/");
}

봄에는 모든 요청이 Dispatcher Servlet을 통과합니다.DispatcherServlet(프론트 컨트롤러)을 통한 정적 파일 요청을 피하기 위해 MVC 정적 콘텐츠를 구성합니다.

Spring 3.1에서는 ResourceHttpRequestHandlerRegistry가 도입되어 클래스 패스, WAR 또는 파일시스템에서 스태틱리소스를 처리하기 위한 ResourceHttpRequestHandler가 설정되었습니다.웹 컨텍스트컨피규레이션클래스 내에서 ResourceHandlerRegistry를 프로그래밍 방식으로 설정할 수 있습니다.

  • 패턴을 ResourceHandler에 추가했습니다.foo.js디렉터리에 있는 리소스
  • 패턴을 ResourceHandler에 추가했습니다.foo.html디렉터리에 있는 리소스
@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"/>

파일이 WAR의 webapp/resources 폴더에 있는 경우 Spring Boot MVC Static Content.

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

사용하다org.springframework.web.servlet.config.annotation.WebMvcConfigurer

스프링 부트 2.1.4의 경우.릴리스(스프링 프레임워크 5.1.6).릴리스)를 다음과 같이 실행한다.

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

}

언급URL : https://stackoverflow.com/questions/47552835/the-type-webmvcconfigureradapter-is-deprecated