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
(e.g. 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
-
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, 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, 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.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
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 for wrapping with fallback logger. -
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
Set an alternative logger to use than the one based on the class name.- Parameters:
logger
- the logger to use- Since:
- 5.1
-
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
-