## org.springframework.web.servlet.mvc.method.annotation
Class RequestMappingHandlerMapping

    java.lang.Object
      org.springframework.context.support.ApplicationObjectSupport
          org.springframework.web.context.support.WebApplicationObjectSupport
              org.springframework.web.servlet.handler.AbstractHandlerMapping
                  org.springframework.web.servlet.handler.AbstractHandlerMethodMapping<RequestMappingInfo>
                      org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping
                          org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

All Implemented Interfaces:
  Aware, InitializingBean, ApplicationContextAware, Ordered, ServletContextAware, HandlerMapping

    public class RequestMappingHandlerMapping

extends RequestMappingInfoHandlerMapping

Creates `RequestMappingInfo` instances from type and method-level `@RequestMapping` annotations in `@Controller` classes.

Since:
  3.1
Author:
  Arjen Poutsma, Rossen Stoyanchev

Field Summary

Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
`logger`

Fields inherited from interface org.springframework.web.servlet.HandlerMapping
`BEST_MATCHING_PATTERN_ATTRIBUTE, INTROSPECT_TYPE_LEVEL_MAPPING, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE`

Fields inherited from interface org.springframework.core.Ordered
`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

Constructor Summary
`RequestMappingHandlerMapping()`

Method Summary
`protected RequestCondition<?>` `getCustomMethodCondition(Method method)` Provide a custom method-level request condition.
`protected RequestCondition<?>` `getCustomTypeCondition(Class<?> handlerType)` Provide a custom type-level request condition.
`protected RequestMappingInfo` `getMappingForMethod(Method method, Class<?> handlerType)` Uses method and type-level @`RequestMapping` annotations to create the RequestMappingInfo.
`protected boolean` `isHandler(Class<?> beanType)` Whether the given type is a handler with handler methods.
`void` `setUseSuffixPatternMatch(boolean useSuffixPatternMatch)` Whether to use suffix pattern match (".*") when matching patterns to requests.
`void` `setUseTrailingSlashMatch(boolean useTrailingSlashMatch)` Whether to match to URLs irrespective of the presence of a trailing slash.
`boolean` `useSuffixPatternMatch()` Whether to use suffix pattern matching.
`boolean` `useTrailingSlashMatch()` Whether to match to URLs irrespective of the presence of a trailing slash.

Methods inherited from class org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping
`getMappingComparator, getMappingPathPatterns, getMatchingMapping, handleMatch, handleNoMatch`

Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMethodMapping
`afterPropertiesSet, detectHandlerMethods, getHandlerInternal, getHandlerMethods, handlerMethodsInitialized, initHandlerMethods, lookupHandlerMethod, registerHandlerMethod, setDetectHandlerMethodsInAncestorContexts`

Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
`adaptInterceptor, detectMappedInterceptors, extendInterceptors, getAdaptedInterceptors, getDefaultHandler, getHandler, getHandlerExecutionChain, getMappedInterceptors, getOrder, getPathMatcher, getUrlPathHelper, initApplicationContext, initInterceptors, setAlwaysUseFullPath, setDefaultHandler, setInterceptors, setOrder, setPathMatcher, setUrlDecode, setUrlPathHelper`

Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
`getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext`

Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
`getApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContext`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RequestMappingHandlerMapping

    public RequestMappingHandlerMapping()

Method Detail

### setUseSuffixPatternMatch

    public void setUseSuffixPatternMatch(boolean useSuffixPatternMatch)

  Whether to use suffix pattern match (".*") when matching patterns to requests. If enabled a method mapped to "/users" also matches to "/users.*".

  The default value is `true`.

### setUseTrailingSlashMatch

    public void setUseTrailingSlashMatch(boolean useTrailingSlashMatch)

  Whether to match to URLs irrespective of the presence of a trailing slash. If enabled a method mapped to "/users" also matches to "/users/".

  The default value is `true`.

### useSuffixPatternMatch

    public boolean useSuffixPatternMatch()

  Whether to use suffix pattern matching.

### useTrailingSlashMatch

    public boolean useTrailingSlashMatch()

  Whether to match to URLs irrespective of the presence of a trailing slash.

### isHandler

    protected boolean isHandler(Class<?> beanType)

  Whether the given type is a handler with handler methods. Expects a handler to have a type-level @`Controller` annotation.

  Specified by:
    `isHandler` in class `AbstractHandlerMethodMapping<RequestMappingInfo>`
  Parameters:
    `beanType` - the type of the bean being checked
  Returns:
    "true" if this a handler type, "false" otherwise.

### getMappingForMethod

    protected RequestMappingInfo getMappingForMethod(Method method,
                                                     Class<?> handlerType)

  Uses method and type-level @`RequestMapping` annotations to create the RequestMappingInfo.

  Specified by:
    `getMappingForMethod` in class `AbstractHandlerMethodMapping<RequestMappingInfo>`
  Parameters:
    `method` - the method to provide a mapping for
    `handlerType` - the handler type, possibly a sub-type of the method's declaring class
  Returns:
    the created RequestMappingInfo, or `null` if the method does not have a `@RequestMapping` annotation.
  See Also:
    `getCustomMethodCondition(Method)`, `getCustomTypeCondition(Class)`

### getCustomMethodCondition

    protected RequestCondition<?> getCustomMethodCondition(Method method)

  Provide a custom method-level request condition. The custom `RequestCondition` can be of any type so long as the same condition type is returned from all calls to this method in order to ensure custom request conditions can be combined and compared.

  Parameters:
    `method` - the handler method for which to create the condition
  Returns:
    the condition, or `null`

### getCustomTypeCondition

    protected RequestCondition<?> getCustomTypeCondition(Class<?> handlerType)

  Provide a custom type-level request condition. The custom `RequestCondition` can be of any type so long as the same condition type is returned from all calls to this method in order to ensure custom request conditions can be combined and compared.

  Parameters:
    `handlerType` - the handler type for which to create the condition
  Returns:
    the condition, or `null`