Spring5 - 如何提供静态资源

Spring 5 - How to provide static resources

我尝试在我的 Web 应用程序中提供静态资源,我试过:

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

但 WebMvcConfigurerAdapter 在 Spring 中已弃用 5. 我现在如何访问静态资源?

Spring 5 - Static Resources

来自文档:

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

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

}

只是从上面@alfcope 的回答中添加:

可以通过直接扩展 WebMvcConfigurationSupport 来实现相同的 objective,如 documentation

中所建议的

似乎扩展 WebMvcConfigurationSupport 服务于 @EnableWebMvc 的目的,并允许有选择地覆盖任何所需的默认实现,在本例中为 addResourceHandlers。所以示例代码可以是

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {

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

}