복붙노트

[SPRING] Spring 5 - 정적 자원을 제공하는 방법

SPRING

Spring 5 - 정적 자원을 제공하는 방법

내 웹 응용 프로그램에서 정적 리소스를 제공하려고 노력 중이고 시도 :

@SuppressWarnings("deprecation")
@Bean
WebMvcConfigurerAdapter configurer(){
    return new WebMvcConfigurerAdapter() {
        @Override
        public void addResourceHandlers (ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/**").
                      addResourceLocations("classpath:/static/");
        }
    };
}

하지만 WebMvcConfigurerAdapter는 Spring 5에서 사용되지 않습니다. 이제 정적 리소스에 어떻게 액세스 할 수 있습니까?

해결법

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

    1.Spring 5 - 정적 리소스

    Spring 5 - 정적 리소스

    문서에서 :

    @Configuration
    @EnableWebMvc
    public class WebConfig implements WebMvcConfigurer {
    
            @Override
            public void addResourceHandlers(ResourceHandlerRegistry registry) {
                    registry.addResourceHandler("/resources/**")
                            .addResourceLocations("/public", "classpath:/static/")
                            .setCachePeriod(31556926);
            }
    
    }
    
  2. ==============================

    2.위의 @alfcope의 대답에서 추가하기 만하면됩니다.

    위의 @alfcope의 대답에서 추가하기 만하면됩니다.

    설명서에서 제안 된대로 WebMvcConfigurationSupport를 직접 확장하여 동일한 목표를 달성 할 수 있습니다.

    WebMvcConfigurationSupport를 확장하는 것이 @EnableWebMvc의 목적을 충족시키고 원하는 기본 구현을 선택적으로 대체 할 수 있으며이 경우에는 addResourceHandlers를 우선 적용하는 것처럼 보입니다. 따라서 예제 코드는

    @Configuration
    public class WebConfig extends WebMvcConfigurationSupport {
    
            @Override
            public void addResourceHandlers(ResourceHandlerRegistry registry) {
                    registry.addResourceHandler("/resources/**")
                            .addResourceLocations("/public", "classpath:/static/")
                            .setCachePeriod(31556926);
            }
    
    }
    
  3. from https://stackoverflow.com/questions/46567681/spring-5-how-to-provide-static-resources by cc-by-sa and MIT license