mvc:resources的注释配置替换-Spring


75

我试图升级我的spring mvc项目,以利用新的注释并摆脱我的xml。以前,我web.xml通过以下行将静态资源加载到我的行中:

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

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

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

Answers:


119

对于春季3和4:

一种方法是让您的配置类extension WebMvcConfigurerAdapter,然后像这样重写以下方法:

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

5
这个答案是完全正确的。但是,如果在添加后遇到问题(如我以前的
想法

为答案投票。如果您可以添加说明,那就更好了。对于初学者来说那会很好。
Menuka Ishan

4
@Menuka说明:每个以“ / resources / **”路径开头的请求都将映射到“ / resources /”文件夹中的文件。
克里斯汀(Krystian)

22

春季5

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

例如:

@Configuration
@EnableWebMvc
public class MyApplication implements WebMvcConfigurer {

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

请参阅以下弃用的消息:WebMvcConfigurerAdapter

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.