Миграция с Spring (Vanilla) на Spring Boot – как сохранить URL-адреса после пользовательского сопоставления сервлетов?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Миграция с Spring (Vanilla) на Spring Boot – как сохранить URL-адреса после пользовательского сопоставления сервлетов?

Сообщение Anonymous »

Я переношу свое очень большое веб-приложение, использующее Spring MVC (ванильный вариант), на Spring Boot (версия 3.2.5).
Мое приложение также использовало другую платформу, и в результате я явно в файле web.xml указано, какие запросы должны обрабатываться Spring DispatcherServlet, например:

Код: Выделить всё

dispatcher

org.springframework.web.servlet.DispatcherServlet

3


dispatcher
*.s


dispatcher
*.json

Итак, все запросы с суффиксом «.s» и «.json» были нацелены на DispatcherServlet Spring.
В Spring Boot это больше невозможно, для DispatcherServlet установлено значение "/". Меня это не беспокоит, я считаю, что это правильная политика. Однако в моем приложении в содержании и коде очень много ссылок на URL-адреса с суффиксом «.s» или «.json». Например. "https://example.com/article.s?id={id}".
Мне бы хотелось избежать необходимости переписывать все вхождения "article.s" и контроллера. код для "article" и запрос от "article.s", как и раньше, обрабатывается @Controller с помощью @RequestMapping(value = "/article", params="id"). Аналогичная проблема возникает с контроллерами «.json». Кстати: в ванильном Spring мне не нужно было добавлять «.s» или «.json» в определение @RequestMapping — Spring MVC смог понять и проигнорировать этот суффикс в URL-адресе запроса. Это означает, что все контроллеры определяются следующим образом: @RequestMapping(value = "/someurl" ...) и не следующим образом: @RequestMapping(value = "/someurl.s" ...)
Как я могу обойти это?
Возможно, используя какой-нибудь механизм перезаписи URL-адресов (перезаписывая все запросы в "someurl.s"/"someurl .json" на "someurl")?
Обновить
Извините, я вижу, что в более старой версии Spring я использовал setUseSuffixPatternMatch метод в WebMvcConfigurer.configurePathMatch. В Spring 6 этот метод устарел, замены ему нет, скоро он будет удален.

Код: Выделить всё

public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(true);
}
Думаю, я еще смогу использовать его какое-то время. Однако «совпадение с шаблоном суффикса» — это слишком много, чем мне нужно. Я ищу способ установить перенаправление с «.s» и «.json» на «*».

Подробнее здесь: https://stackoverflow.com/questions/784 ... r-custom-s
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»