Вы говорите, что хотите избежать жесткого кодирования путей по всему приложению, но обычно все контроллеры (и, следовательно, все сопоставления 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-адреса, они в значительной степени исправлены, поскольку они представляют интерфейс с клиентами, и их изменение, вероятно, означает нарушение обратной совместимости.
Не то, чтобы я думал, что класс с кучей статических финальных строк - это все так плохо, я просто думаю, что в основном он не нужен.