Можно ли снизить приоритет отображения запроса, чтобы он пришел в самый конец проверки пути в Spring Boot? - PullRequest
0 голосов
/ 30 сентября 2018

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

@RequestMapping(value = "/**")
public void doUrlRequest(final HttpServletRequest request, HttpServletResponse response) {

Однако он вызывается для путей типа /css/style.css и /images/logo.png, заставляя их не загружаться.Можно ли подтолкнуть его к более низкому приоритету, чтобы он соответствовал последнему пути?Мне нужно обрабатывать запросы вроде /tag/channel.

. В Rails это было бы эквивалентно перемещению пути к нижней части routes.rb.

1 Ответ

0 голосов
/ 30 сентября 2018

Никогда не стоит использовать /** для обработки ваших запросов.Используйте специальные методы обработчиков, чтобы пометить их @RequestMapping Кроме того, статические ресурсы необходимо обрабатывать с использованием статических обработчиков ресурсов.В вашем классе конфигурации, который расширяет WebMvcConfigurerAdapter, вам необходимо добавить обработчики для таких ресурсов.Вот пример такого файла:

@Configuration
public class WebConfigurations extends WebMvcConfigurerAdapter {

    private static final String[] CLASSPATH = {"classpath:/static/"};

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        super.addResourceHandlers(registry);
        if (!registry.hasMappingForPattern("/**")) {
            registry.addResourceHandler("/**")
                    .addResourceLocations(CLASSPATH);
        }
    }
}

Эта конфигурация предполагает, что ваши статические ресурсы обслуживаются из каталога resources/static.

РЕДАКТИРОВАТЬ: Как выупоминается в комментарии, что вы хотите обрабатывать запросы типа /tag1/channel1 и т. д., хороший способ сделать это - использовать переменные пути.Следующая аннотация должна помочь: @RequestMapping("/{tag}/{channel}") и использовать String аргументы в методе контроллера.Вот образец:

@RequestMapping("/{tag}/{channel}")
public String usefulMethodName(@PathVariable String tag, @PathVariable String channel) {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...