web-dev-qa-db-ja.com

Spring 5-静的リソースを提供する方法

私は自分のWebアプリケーションに静的リソースを提供しようとしています。

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

ただし、WebMvcConfigurerAdapterはSpring 5で非推奨になりました。静的リソースにアクセスするにはどうすればよいですか?

7
John Mendes

春5-静的リソース

ドキュメントから:

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
                registry.addResourceHandler("/resources/**")
                        .addResourceLocations("/public", "classpath:/static/")
                        .setCachePeriod(31556926);
        }

}
10
alfcope

上記の@alfcopeの答えから追加するだけです:

documentation で提案されているように、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);
        }

}
1
Masud