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

Dan*_*n W 66 java configuration spring spring-mvc

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

<mvc:resources mapping="/resources/**" location="/resources/" /> 
Run Code Online (Sandbox Code Playgroud)

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

是否有注释或新配置可以在不使用xml的情况下重新获取这些资源?

AHu*_*ist 108

对于春季3和4:

一种方法是扩展配置类WebMvcConfigurerAdapter,然后重写以下方法:

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

  • 这个答案是完全正确的.但是,如果您在添加此问题后遇到问题(比如我),请记住您可能仍需要此处描述的默认servlet处理程序:http://stackoverflow.com/a/17013442/2047962 (5认同)
  • @Menuka说明:每个以"/ resources/**"路径开头的请求都将映射到"/ resources /"文件夹中的文件. (4认同)

ete*_*ech 14

春天5

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

例如:

@Configuration
@EnableWebMvc
public class MyApplication implements WebMvcConfigurer {

    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }
}
Run Code Online (Sandbox Code Playgroud)

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