Каковы рекомендуемые подходы для генерации маршрутов в Spring MVC? - PullRequest
6 голосов
/ 19 апреля 2011

Каковы рекомендуемые подходы для создания маршрутов в веб-приложении Spring MVC на основе Java? Мне бы хотелось избегать жестких путей в приложении.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

Если мы говорим о путях RequestMappings и т. Д. В моем приложении у меня есть один класс с кучей public static final констант, на которые я ссылаюсь в аннотациях @RequestMapping.

Так что константы могут выглядеть так:

public class Pages {
  public static final String FOO_URL "foo/foo.action"
  public static final String FOO_VIEW "test/foo"

  public static final String BAR_URL "bar/bar.action"
  public static final String BAR_VIEW "test/bar"
}

тогда внутри вашего контроллера вы будете ссылаться на них так:

@RequestMapping(value=Pages.FOO_URL, method=RequestMethod.GET)
public String handleFoo(Model model) {
      return Pages.FOO_VIEW;
    }

Их легко изменить, поскольку они все в одном месте.

0 голосов
/ 02 мая 2011

Вы говорите, что хотите избежать жесткого кодирования путей по всему приложению, но обычно все контроллеры (и, следовательно, все сопоставления URL-адресов) находятся в одном каталоге. Например, если у вас есть структура maven, она будет где-то вроде src / main / java / com / mycompany / myapp / web / controllers /. Представляете ли вы себя когда-либо задававшим вопрос: «Где я разместил отображение URL для конечной точки / myapp / v1 / search?», И не понимаете, что это в / src / main / java / com / mycompany /myapp/web/controllers/V1SearchController.java?

Также, когда вы выбираете URL-адреса, они в значительной степени исправлены, поскольку они представляют интерфейс с клиентами, и их изменение, вероятно, означает нарушение обратной совместимости.

Не то, чтобы я думал, что класс с кучей статических финальных строк - это все так плохо, я просто думаю, что в основном он не нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...