Search in sources :

Example 1 with RequestMappingInfoHandlerMapping

use of org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping in project spring-framework by spring-projects.

the class MvcUriComponentsBuilder method fromMappingName.

/**
	 * An alternative to {@link #fromMappingName(String)} that accepts a
	 * {@code UriComponentsBuilder} representing the base URL. This is useful
	 * when using MvcUriComponentsBuilder outside the context of processing a
	 * request or to apply a custom baseUrl not matching the current request.
	 * @param builder the builder for the base URL; the builder will be cloned
	 * and therefore not modified and may be re-used for further calls.
	 * @param name the mapping name
	 * @return a builder to prepare the URI String
	 * @throws IllegalArgumentException if the mapping name is not found or
	 * if there is no unique match
	 * @since 4.2
	 */
public static MethodArgumentBuilder fromMappingName(UriComponentsBuilder builder, String name) {
    RequestMappingInfoHandlerMapping handlerMapping = getRequestMappingInfoHandlerMapping();
    List<HandlerMethod> handlerMethods = handlerMapping.getHandlerMethodsForMappingName(name);
    if (handlerMethods == null) {
        throw new IllegalArgumentException("Mapping mappingName not found: " + name);
    }
    if (handlerMethods.size() != 1) {
        throw new IllegalArgumentException("No unique match for mapping mappingName " + name + ": " + handlerMethods);
    }
    HandlerMethod handlerMethod = handlerMethods.get(0);
    Class<?> controllerType = handlerMethod.getBeanType();
    Method method = handlerMethod.getMethod();
    return new MethodArgumentBuilder(builder, controllerType, method);
}
Also used : RequestMappingInfoHandlerMapping(org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping) HandlerMethod(org.springframework.web.method.HandlerMethod) Method(java.lang.reflect.Method) HandlerMethod(org.springframework.web.method.HandlerMethod)

Example 2 with RequestMappingInfoHandlerMapping

use of org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping in project spring-boot by spring-projects.

the class EndpointWebMvcAutoConfigurationTests method singleRequestMappingInfoHandlerMappingBean.

@Test
public void singleRequestMappingInfoHandlerMappingBean() throws Exception {
    this.applicationContext.register(RootConfig.class, BaseConfiguration.class, EndpointWebMvcAutoConfiguration.class);
    this.applicationContext.refresh();
    RequestMappingInfoHandlerMapping mapping = this.applicationContext.getBean(RequestMappingInfoHandlerMapping.class);
    assertThat(mapping).isNotEqualTo(instanceOf(EndpointHandlerMapping.class));
}
Also used : RequestMappingInfoHandlerMapping(org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping) EndpointHandlerMapping(org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping) Test(org.junit.Test)

Aggregations

RequestMappingInfoHandlerMapping (org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping)2 Method (java.lang.reflect.Method)1 Test (org.junit.Test)1 EndpointHandlerMapping (org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping)1 HandlerMethod (org.springframework.web.method.HandlerMethod)1