79

我正在尝试升级我的 spring mvc 项目以利用新的注释并摆脱我的 xml。以前我在我web.xml的行中加载我的静态资源:

<mvc:resources mapping="/resources/**" location="/resources/" /> 

现在,我正在利用WebApplicationInitializer类和@EnableWebMvc注释来启动我的服务,而无需任何 xml 文件,但似乎无法弄清楚如何加载我的资源。

是否有注释或新配置可以将这些资源拉回而无需使用 xml?

4

2 回答 2

121

对于春季 3 和 4:

一种方法是让您的配置类扩展WebMvcConfigurerAdapter,然后覆盖以下方法:

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
于 2013-02-13T20:42:45.810 回答
25

春天 5

从 Spring 5 开始,正确的方法是简单地实现WebMvcConfigurer接口。

例如:

@Configuration
@EnableWebMvc
public class MyApplication implements WebMvcConfigurer {

    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }
}

请参阅中已弃用的消息:WebMvcConfigurerAdapter

于 2018-02-12T19:47:04.917 回答