public abstract class AbstractControllerUrlHandlerMapping extends AbstractDetectingUrlHandlerMapping
HandlerMapping implementations
that derive URL paths according to conventions for specific controller types.ControllerClassNameHandlerMapping,
ControllerBeanNameHandlerMappingloggerBEST_MATCHING_PATTERN_ATTRIBUTE, INTROSPECT_TYPE_LEVEL_MAPPING, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTEHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| Constructor and Description |
|---|
AbstractControllerUrlHandlerMapping() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract String[] |
buildUrlsForHandler(String beanName,
Class<?> beanClass)
Abstract template method to be implemented by subclasses.
|
protected String[] |
determineUrlsForHandler(String beanName)
This implementation delegates to
buildUrlsForHandler(java.lang.String, java.lang.Class<?>),
provided that isEligibleForMapping(java.lang.String, java.lang.Class<?>) returns true. |
protected boolean |
isControllerType(Class<?> beanClass)
Determine whether the given bean class indicates a controller type
that is supported by this mapping strategy.
|
protected boolean |
isEligibleForMapping(String beanName,
Class<?> beanClass)
Determine whether the specified controller is excluded from this mapping.
|
protected boolean |
isMultiActionControllerType(Class<?> beanClass)
Determine whether the given bean class indicates a controller type
that dispatches to multiple action methods.
|
void |
setExcludedClasses(Class<?>... excludedClasses)
Specify controller classes that should be excluded from this mapping.
|
void |
setExcludedPackages(String... excludedPackages)
Specify Java packages that should be excluded from this mapping.
|
void |
setIncludeAnnotatedControllers(boolean includeAnnotatedControllers)
Set whether to activate or deactivate detection of annotated controllers.
|
detectHandlers, initApplicationContext, setDetectHandlersInAncestorContextsbuildPathExposingHandler, exposePathWithinMapping, exposeUriTemplateVariables, getHandlerInternal, getHandlerMap, getRootHandler, lookupHandler, registerHandler, registerHandler, setLazyInitHandlers, setRootHandler, supportsTypeLevelMappings, validateHandleradaptInterceptor, detectMappedInterceptors, extendInterceptors, getAdaptedInterceptors, getDefaultHandler, getHandler, getHandlerExecutionChain, getMappedInterceptors, getOrder, getPathMatcher, getUrlPathHelper, initInterceptors, setAlwaysUseFullPath, setDefaultHandler, setInterceptors, setOrder, setPathMatcher, setRemoveSemicolonContent, setUrlDecode, setUrlPathHelpergetServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextgetApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContextpublic void setIncludeAnnotatedControllers(boolean includeAnnotatedControllers)
public void setExcludedPackages(String... excludedPackages)
Default is to exclude the entire "org.springframework.web.servlet.mvc"
package, including its subpackages, since none of Spring's out-of-the-box
Controller implementations is a reasonable candidate for this mapping strategy.
Such controllers are typically handled by a separate HandlerMapping,
e.g. a BeanNameUrlHandlerMapping,
alongside this ControllerClassNameHandlerMapping for application controllers.
public void setExcludedClasses(Class<?>... excludedClasses)
protected String[] determineUrlsForHandler(String beanName)
buildUrlsForHandler(java.lang.String, java.lang.Class<?>),
provided that isEligibleForMapping(java.lang.String, java.lang.Class<?>) returns true.determineUrlsForHandler in class AbstractDetectingUrlHandlerMappingbeanName - the name of the candidate beannull or an empty array if noneprotected boolean isEligibleForMapping(String beanName, Class<?> beanClass)
beanName - the name of the controller beanbeanClass - the concrete class of the controller beansetExcludedPackages(java.lang.String...),
setExcludedClasses(java.lang.Class<?>...)protected boolean isControllerType(Class<?> beanClass)
beanClass - the class to introspectprotected boolean isMultiActionControllerType(Class<?> beanClass)
beanClass - the class to introspect