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

java.lang.Object
  extended by org.springframework.context.support.ApplicationObjectSupport
      extended by org.springframework.web.context.support.WebApplicationObjectSupport
          extended by org.springframework.web.servlet.handler.AbstractHandlerMapping
              extended by org.springframework.web.servlet.handler.AbstractHandlerMethodMapping<RequestMappingInfo>
                  extended by org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping
                      extended by org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
All Implemented Interfaces:
Aware, 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
detectHandlerMethods, getHandlerInternal, getHandlerMethods, handlerMethodsInitialized, initApplicationContext, 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, 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:
method - the handler method for which to create the condition
Returns:
the condition, or null