|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.context.support.ApplicationObjectSupport
org.springframework.web.context.support.WebApplicationObjectSupport
org.springframework.web.servlet.handler.AbstractHandlerMapping
public abstract class AbstractHandlerMapping
Abstract base class for HandlerMapping
implementations. Supports ordering, a default handler, and handler interceptors.
Note: This base class does not support exposure of the
HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE. Support for this attribute
is up to concrete subclasses, typically based on request URL mappings.
getHandlerInternal(javax.servlet.http.HttpServletRequest),
setDefaultHandler(java.lang.Object),
setInterceptors(java.lang.Object[]),
HandlerInterceptor| 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, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE |
| Fields inherited from interface org.springframework.core.Ordered |
|---|
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
| Constructor Summary | |
|---|---|
AbstractHandlerMapping()
|
|
| Method Summary | |
|---|---|
protected HandlerInterceptor |
adaptInterceptor(Object interceptor)
Adapt the given interceptor object to the HandlerInterceptor interface. |
protected void |
extendInterceptors(List<Object> interceptors)
Extension hook that subclasses can override to register additional interceptors, given the configured interceptors (see setInterceptors(java.lang.Object[])). |
protected HandlerInterceptor[] |
getAdaptedInterceptors()
Return the adapted interceptors as HandlerInterceptor array. |
Object |
getDefaultHandler()
Return the default handler for this handler mapping, or null if none. |
HandlerExecutionChain |
getHandler(HttpServletRequest request)
Look up a handler for the given request, falling back to the default handler if no specific one is found. |
protected HandlerExecutionChain |
getHandlerExecutionChain(Object handler,
HttpServletRequest request)
Build a HandlerExecutionChain for the given handler, including applicable interceptors. |
protected abstract Object |
getHandlerInternal(HttpServletRequest request)
Look up a handler for the given request, returning null if no
specific one is found. |
int |
getOrder()
Return the order value of this object, with a higher value meaning greater in terms of sorting. |
protected void |
initApplicationContext()
Initializes the interceptors. |
protected void |
initInterceptors()
Initialize the specified interceptors, adapting them where necessary. |
void |
setDefaultHandler(Object defaultHandler)
Set the default handler for this handler mapping. |
void |
setInterceptors(Object[] interceptors)
Set the interceptors to apply for all handlers mapped by this handler mapping. |
void |
setOrder(int order)
Specify the order value for this HandlerMapping bean. |
| 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 |
|---|
public AbstractHandlerMapping()
| Method Detail |
|---|
public final void setOrder(int order)
Default value is Integer.MAX_VALUE, meaning that it's non-ordered.
Ordered.getOrder()public final int getOrder()
OrderedNormally starting with 0, with Integer.MAX_VALUE
indicating the greatest value. Same order values will result
in arbitrary positions for the affected objects.
Higher values can be interpreted as lower priority. As a consequence, the object with the lowest value has highest priority (somewhat analogous to Servlet "load-on-startup" values).
getOrder in interface Orderedpublic void setDefaultHandler(Object defaultHandler)
Default is null, indicating no default handler.
public Object getDefaultHandler()
null if none.
public void setInterceptors(Object[] interceptors)
Supported interceptor types are HandlerInterceptor and WebRequestInterceptor.
interceptors - array of handler interceptors, or null if noneadaptInterceptor(java.lang.Object),
HandlerInterceptor,
WebRequestInterceptor
protected void initApplicationContext()
throws BeansException
initApplicationContext in class ApplicationObjectSupportApplicationContextException - in case of initialization errors
BeansException - if thrown by ApplicationContext methodsextendInterceptors(java.util.List),
initInterceptors()protected void extendInterceptors(List<Object> interceptors)
setInterceptors(java.lang.Object[])).
Will be invoked before initInterceptors() adapts the specified
interceptors into HandlerInterceptor instances.
The default implementation is empty.
interceptors - the configured interceptor List (never null),
allowing to add further interceptors before as well as after the existing
interceptorsprotected void initInterceptors()
setInterceptors(java.lang.Object[]),
adaptInterceptor(java.lang.Object)protected HandlerInterceptor adaptInterceptor(Object interceptor)
Supported interceptor types are HandlerInterceptor and WebRequestInterceptor. Each given WebRequestInterceptor will be wrapped in a WebRequestHandlerInterceptorAdapter. Can be overridden in subclasses.
interceptor - the specified interceptor object
HandlerInterceptor,
WebRequestInterceptor,
WebRequestHandlerInterceptorAdapterprotected final HandlerInterceptor[] getAdaptedInterceptors()
null if none
public final HandlerExecutionChain getHandler(HttpServletRequest request)
throws Exception
getHandler in interface HandlerMappingrequest - current HTTP request
Exception - if there is an internal errorgetHandlerInternal(javax.servlet.http.HttpServletRequest)
protected abstract Object getHandlerInternal(HttpServletRequest request)
throws Exception
null if no
specific one is found. This method is called by getHandler(javax.servlet.http.HttpServletRequest);
a null return value will lead to the default handler, if one is set.
Note: This method may also return a pre-built HandlerExecutionChain,
combining a handler object with dynamically determined interceptors.
Statically specified interceptors will get merged into such an existing chain.
request - current HTTP request
null if none found
Exception - if there is an internal error
protected HandlerExecutionChain getHandlerExecutionChain(Object handler,
HttpServletRequest request)
The default implementation simply builds a standard HandlerExecutionChain with the given handler and this handler mapping's common interceptors. Subclasses may override this in order to extend/rearrange the list of interceptors.
NOTE: The passed-in handler object may be a raw handler or a pre-built HandlerExecutionChain. This method should handle those two cases explicitly, either building a new HandlerExecutionChain or extending the existing chain.
For simply adding an interceptor, consider calling super.getHandlerExecutionChain
and invoking HandlerExecutionChain.addInterceptor(org.springframework.web.servlet.HandlerInterceptor) on the returned chain object.
handler - the resolved handler instance (never null)request - current HTTP request
null)getAdaptedInterceptors()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||