В Spring MVC каждой конечной точке автоматически присваивается имя с помощью HandlerMethodMappingNamingStrategy, по умолчанию это делается с помощью RequestMappingInfoHandlerMethodMappingNamingStrategy, который будет использовать заглавные буквы контроллера, знак решетки (#) и затем имя метода конечной точки.
Таким образом, контроллеру с именем HomeController, который имеет индекс метода, автоматически будет присвоено имя отображения HC#index.
Я хочу предоставить свою собственную стратегию, в которой используется ПОЛНОЕ имя контроллера, чтобы оно генерировало имя сопоставления HomeController#index.
Документация Spring MVC довольно ясна и гласит:
Вот как это работает. При запуске каждому @RequestMapping назначается
имя по умолчанию через HandlerMethodMappingNamingStrategy, чья
реализация по умолчанию использует заглавные буквы класса и
имя метода (например, метод getThing в ThingControllerстановится "TC#getThing"). Если есть конфликт имен, вы можете использовать
@RequestMapping(name=".."), чтобы назначить явное имя или реализовать
свою собственную стратегию HandlerMethodMappingNamingStrategy.
Я создал свой собственный класс, реализующий HandlerMethodMappingNamingStrategy, но понятия не имею, как Spring MVC теперь может его использовать.
Единственное место, где я вижу стратегию по умолчанию, упомянутую в коде Spring, - это абстрактный класс, который напрямую создает экземпляр стратегии по умолчанию:
public abstract class RequestMappingInfoHandlerMapping extends AbstractHandlerMethodMapping {
...other code
protected RequestMappingInfoHandlerMapping() {
setHandlerMethodMappingNamingStrategy(new RequestMappingInfoHandlerMethodMappingNamingStrategy());
}
...other code
}
Подробнее здесь: https://stackoverflow.com/questions/781 ... spring-mvc