我想將特定的一組資源(音頻)映射到控制器。但資源/ **映射到所有資源。我如何隔離特定的資源請求,以便它不通過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