Сопоставление статических ресурсов Spring: контроллер против addResourceHandler

Я пытаюсь сопоставить определенный набор ресурсов (аудио) с контроллером. Но ресурсы /** отображаются на все ресурсы. Как я могу изолировать конкретный запрос ресурса, чтобы он не проходил через статическое сопоставление ресурсов Spring, а только для моего контроллера? Является ли перемещение аудиоресурсов в другую папку, кроме ресурсов, единственным решением?

Например:

Структура папки:

/resources/js
/resources/css
/resources/audio

Сопоставление ресурсов с помощью Spring Web Config:

@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(...) {
    }
   ....

}

2 ответа

Является ли перемещение аудиоресурсов в другую папку, кроме ресурсов, единственным решением?

В чем проблема с этим? Кажется идеальным: обычным и интуитивным для меня. Если это не статично, не делайте его статичным.

Насколько я знаю, нет способа указать исключение в пути муравья. И я думаю, что по этой причине многие утилиты, основанные на сопоставлении пути муравья, предоставляют путь включения и исключения.

Но в любом случае было бы опасно в смысле будущих эволюций иметь под /resources данные, которые будут обслуживать контролеры, также сказал НимЧимпский.

Другие вопросы по тегам