2012-06-18 11 views
29

Tenemos una aplicación web mvc spring bastante grande en la que los controladores se anotan con @Controller y los métodos con @RequestMapping.spring mvc obtener todas las asignaciones de solicitudes

me gustaría crear una prueba ahora que comprueba todas las posibles URL y comprueba si el valor de retorno es de 200.

¿Es posible de alguna manera para conseguir todas las asignaciones de primavera?

+2

Esta es una forma de obtener todas las asignaciones - http://stackoverflow.com/a/10899118/204788 –

+0

muchas gracias. Si respondes, lo aceptaré. – superbly

+0

Genial porque esta respuesta te ayuda @shifty, ahora la he agregado como respuesta. –

Respuesta

34

estoy replicando una de mis previous answers aquí:

Si está utilizando la primavera 3,1 este componente handlerMapping es una instancia de RequestMappingHandlerMapping, que se puede consultar para encontrar los handlerMappedMethods y los controladores asociados, a lo largo de estas líneas (si usted está en una versión anterior de la primavera, usted debería ser capaz de utilizar un enfoque similar):

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()); 
} 
} 

que he proporcionado más detalles sobre esto en esta url http://biju-allandsundry.blogspot.com/2012/03/endpoint-documentation-controller-for.html

Esto se basa en una presentación en Spring 3.1 de Rossen Stoyanchev de Spring Source.

+1

¿Esto también enumeraría cualquier asignación registrada con BeanNameUrlHandlerMapping? – user48956

+0

Al usar múltiples RequestMappingHandlerMappings (como con OAuth), se obtiene el error "No se define ningún bean único de tipo [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping]: bean de coincidencia única esperado pero encontrado 2: [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping # 0, oauth2HandlerMapping] ". Para solucionarlo, cambie a List Justin

+0

Esto no incluye los puntos finales creados con el '@ FrameworkEndpoint', solo los puntos finales asociados con las anotaciones' @ Controller' y '@ RestController' – cosbor11

Cuestiones relacionadas