Class HandlerMethod
java.lang.Object
org.springframework.core.annotation.AnnotatedMethod
org.springframework.messaging.handler.HandlerMethod
- Direct Known Subclasses:
InvocableHandlerMethod
,InvocableHandlerMethod
Encapsulates information about a handler method consisting of a
method and a bean.
Provides convenient access to method parameters, the method return value,
method annotations, etc.
The class may be created with a bean instance or with a bean name
(for example, lazy-init bean, prototype bean). Use createWithResolvedBean()
to obtain a HandlerMethod
instance with a bean instance resolved
through the associated BeanFactory
.
- Since:
- 4.0
- Author:
- Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.core.annotation.AnnotatedMethod
AnnotatedMethod.AnnotatedMethodParameter
-
Field Summary
Modifier and TypeFieldDescriptionstatic final org.apache.commons.logging.Log
Public for wrapping with fallback logger.protected org.apache.commons.logging.Log
-
Constructor Summary
ModifierConstructorDescriptionHandlerMethod
(Object bean, Method method) Create an instance from a bean instance and a method.HandlerMethod
(Object bean, String methodName, Class<?>... parameterTypes) Create an instance from a bean instance, method name, and parameter types.HandlerMethod
(String beanName, BeanFactory beanFactory, Method method) Create an instance from a bean name, a method, and aBeanFactory
.protected
HandlerMethod
(HandlerMethod handlerMethod) Copy constructor for use in subclasses. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
assertTargetBean
(Method method, Object targetBean, @Nullable Object[] args) Assert that the target bean class is an instance of the class where the given method is declared.If the provided instance contains a bean name rather than an object instance, the bean name is resolved before aHandlerMethod
is created and returned.boolean
protected String
formatInvokeError
(String text, @Nullable Object[] args) getBean()
Return the bean for this handler method.Class<?>
This method returns the type of the handler for this handler method.protected Class<?>
Expose the containing class for method parameters.org.apache.commons.logging.Log
Return the currently configured Logger.Return the HandlerMethod from which this HandlerMethod instance was resolved viacreateWithResolvedBean()
.Return a short representation of this handler method for log message purposes.int
hashCode()
void
setLogger
(org.apache.commons.logging.Log logger) Set an alternative logger to use than the one based on the class name.Methods inherited from class org.springframework.core.annotation.AnnotatedMethod
findProvidedArgument, formatArgumentError, getBridgedMethod, getMethod, getMethodAnnotation, getMethodParameters, getReturnType, getReturnValueType, hasMethodAnnotation, isVoid, toString
-
Field Details
-
defaultLogger
public static final org.apache.commons.logging.Log defaultLoggerPublic for wrapping with fallback logger. -
logger
protected org.apache.commons.logging.Log logger
-
-
Constructor Details
-
HandlerMethod
Create an instance from a bean instance and a method. -
HandlerMethod
public HandlerMethod(Object bean, String methodName, Class<?>... parameterTypes) throws NoSuchMethodException Create an instance from a bean instance, method name, and parameter types.- Throws:
NoSuchMethodException
- when the method cannot be found
-
HandlerMethod
Create an instance from a bean name, a method, and aBeanFactory
. The methodcreateWithResolvedBean()
may be used later to re-create theHandlerMethod
with an initialized bean. -
HandlerMethod
Copy constructor for use in subclasses.
-
-
Method Details
-
setLogger
public void setLogger(org.apache.commons.logging.Log logger) Set an alternative logger to use than the one based on the class name.- Parameters:
logger
- the logger to use- Since:
- 5.1
-
getLogger
public org.apache.commons.logging.Log getLogger()Return the currently configured Logger.- Since:
- 5.1
-
getBean
Return the bean for this handler method. -
getBeanType
This method returns the type of the handler for this handler method.Note that if the bean type is a CGLIB-generated class, the original user-defined class is returned.
-
getContainingClass
Description copied from class:AnnotatedMethod
Expose the containing class for method parameters.- Overrides:
getContainingClass
in classAnnotatedMethod
- See Also:
-
getResolvedFromHandlerMethod
Return the HandlerMethod from which this HandlerMethod instance was resolved viacreateWithResolvedBean()
.- Since:
- 4.3
-
createWithResolvedBean
If the provided instance contains a bean name rather than an object instance, the bean name is resolved before aHandlerMethod
is created and returned. -
getShortLogMessage
Return a short representation of this handler method for log message purposes. -
equals
- Overrides:
equals
in classAnnotatedMethod
-
hashCode
public int hashCode()- Overrides:
hashCode
in classAnnotatedMethod
-
assertTargetBean
Assert that the target bean class is an instance of the class where the given method is declared. In some cases the actual endpoint instance at request- processing time may be a JDK dynamic proxy (lazy initialization, prototype beans, and others). Endpoint classes that require proxying should prefer class-based proxy mechanisms. -
formatInvokeError
-