org.springframework.web.servlet.handler
Class AbstractDetectingUrlHandlerMapping
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.AbstractUrlHandlerMapping
org.springframework.web.servlet.handler.AbstractDetectingUrlHandlerMapping
- All Implemented Interfaces:
- ApplicationContextAware, Ordered, ServletContextAware, HandlerMapping
- Direct Known Subclasses:
- AbstractControllerUrlHandlerMapping, BeanNameUrlHandlerMapping, DefaultAnnotationHandlerMapping
public abstract class AbstractDetectingUrlHandlerMapping
- extends AbstractUrlHandlerMapping
Abstract implementation of the HandlerMapping
interface, detecting URL mappings for handler beans through introspection of all
defined beans in the application context.
- Since:
- 2.5
- Author:
- Juergen Hoeller
- See Also:
determineUrlsForHandler(java.lang.String)
Methods inherited from class org.springframework.web.servlet.handler.AbstractUrlHandlerMapping |
buildPathExposingHandler, exposePathWithinMapping, exposeUriTemplateVariables, getHandlerInternal, getHandlerMap, getPathMatcher, getRootHandler, initInterceptors, lookupHandler, registerHandler, registerHandler, setAlwaysUseFullPath, setLazyInitHandlers, setMappedInterceptors, setPathMatcher, setRootHandler, setUrlDecode, setUrlPathHelper, validateHandler |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AbstractDetectingUrlHandlerMapping
public AbstractDetectingUrlHandlerMapping()
setDetectHandlersInAncestorContexts
public void setDetectHandlersInAncestorContexts(boolean detectHandlersInAncestorContexts)
- Set whether to detect handler beans in ancestor ApplicationContexts.
Default is "false": Only handler beans in the current ApplicationContext
will be detected, i.e. only in the context that this HandlerMapping itself
is defined in (typically the current DispatcherServlet's context).
Switch this flag on to detect handler beans in ancestor contexts
(typically the Spring root WebApplicationContext) as well.
initApplicationContext
public void initApplicationContext()
throws ApplicationContextException
- Calls the
detectHandlers()
method in addition to the
superclass's initialization.
- Overrides:
initApplicationContext
in class AbstractHandlerMapping
- Throws:
ApplicationContextException
- in case of initialization errors- See Also:
AbstractHandlerMapping.extendInterceptors(java.util.List)
,
AbstractHandlerMapping.initInterceptors()
detectHandlers
protected void detectHandlers()
throws BeansException
- Register all handlers found in the current ApplicationContext.
The actual URL determination for a handler is up to the concrete
determineUrlsForHandler(String)
implementation. A bean for
which no such URLs could be determined is simply not considered a handler.
- Throws:
BeansException
- if the handler couldn't be registered- See Also:
determineUrlsForHandler(String)
determineUrlsForHandler
protected abstract String[] determineUrlsForHandler(String beanName)
- Determine the URLs for the given handler bean.
- Parameters:
beanName
- the name of the candidate bean
- Returns:
- the URLs determined for the bean,
or
null
or an empty array if none