Подтвердить что ты не робот

Spring mvc получить все сопоставления запросов

У нас есть довольно большое веб-приложение spring mvc, где контроллеры аннотируются с помощью @Controller и методы с @RequestMapping.

Я хотел бы создать тест, который проверяет все возможные URL-адреса и проверяет, является ли возвращаемое значение 200.

Как можно получить все сопоставления из spring?

4b9b3361

Ответ 1

Я копирую один из моих предыдущих ответов здесь:

Если вы используете Spring 3.1, этот компонент handlerMapping является экземпляром RequestMappingHandlerMapping, который вы можете запросить для поиска handlerMappedMethods и связанных с ним контроллеров по этим строкам (если вы используете более старую версию Spring, вы должен иметь возможность использовать аналогичный подход):

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

@Controller
public class EndpointDocController {
 private final RequestMappingHandlerMapping handlerMapping;

 @Autowired
 public EndpointDocController(RequestMappingHandlerMapping handlerMapping) {
  this.handlerMapping = handlerMapping;
 }

 @RequestMapping(value="/endpointdoc", method=RequestMethod.GET)
 public void show(Model model) {
  model.addAttribute("handlerMethods", this.handlerMapping.getHandlerMethods());
 } 
}

Я предоставил более подробную информацию об этом на этом url http://biju-allandsundry.blogspot.com/2012/03/endpoint-documentation-controller-for.html

Это основано на презентации на Spring 3.1 Россена Стоянчева из Spring Source.