我想将特定的一组资源(音频)映射到控制器。但资源/ **映射到所有资源。我如何隔离特定的资源请求,以便它不通过Spring静态资源映射,而是通过我的控制器?将音频资源移动到除资源以外的其他文件夹是唯一的解决方案吗?春季静态资源映射:控制器vs addResourceHandler
例如:
文件夹结构:
/resources/js
/resources/css
/resources/audio
资源映射使用Spring Web配置:
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry)
{
registry.addResourceHandler("/resources/**")
.addResourceLocations("/resources/")
...
}
资源控制器:
public class ResourceController {
@RequestMapping(value = "/resources/audio",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@ResponseBody
public Resource getAudio(...) {
}
....
}
在发布之前,我感觉Controller与资源处理程序之间会有冲突,因为它们都具有相同的请求映射资源/。经过测试,我发现没有冲突。但是一般来说这里的原则是什么,它应该被移到资源处理器映射之外,因为它被控制器处理。 –
jeera