org.springframework.web.method
Class HandlerMethod

java.lang.Object
  extended by org.springframework.web.method.HandlerMethod
Direct Known Subclasses:
InvocableHandlerMethod

public class HandlerMethod
extends Object

Encapsulates information about a bean method consisting of a method and a bean. Provides convenient access to method parameters, the method return value, method annotations.

The class may be created with a bean instance or with a bean name (e.g. lazy bean, prototype bean). Use createWithResolvedBean() to obtain an HandlerMethod instance with a bean instance initialized through the bean factory.

Since:
3.1
Author:
Arjen Poutsma, Rossen Stoyanchev

Field Summary
protected  Log logger
          Logger that is available to subclasses
 
Constructor Summary
HandlerMethod(Object bean, Method method)
          Constructs a new handler method with the given bean instance and method.
HandlerMethod(Object bean, String methodName, Class<?>... parameterTypes)
          Constructs a new handler method with the given bean instance, method name and parameters.
HandlerMethod(String beanName, BeanFactory beanFactory, Method method)
          Constructs a new handler method with the given bean name and method.
 
Method Summary
 HandlerMethod createWithResolvedBean()
          If the provided instance contains a bean name rather than an object instance, the bean name is resolved before a HandlerMethod is created and returned.
 boolean equals(Object o)
           
 Object getBean()
          Returns the bean for this handler method.
 Class<?> getBeanType()
          Returns the type of the handler for this handler method.
protected  Method getBridgedMethod()
          If the bean method is a bridge method, this method returns the bridged (user-defined) method.
 Method getMethod()
          Returns the method for this handler method.
<A extends Annotation>
A
getMethodAnnotation(Class<A> annotationType)
          Returns a single annotation on the underlying method traversing its super methods if no annotation can be found on the given method itself.
 MethodParameter[] getMethodParameters()
          Returns the method parameters for this handler method.
 MethodParameter getReturnType()
          Returns the method return type, as MethodParameter.
 int hashCode()
           
 boolean isVoid()
          Returns true if the method return type is void, false otherwise.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

protected final Log logger
Logger that is available to subclasses

Constructor Detail

HandlerMethod

public HandlerMethod(Object bean,
                     Method method)
Constructs a new handler method with the given bean instance and method.

Parameters:
bean - the object bean
method - the method

HandlerMethod

public HandlerMethod(Object bean,
                     String methodName,
                     Class<?>... parameterTypes)
              throws NoSuchMethodException
Constructs a new handler method with the given bean instance, method name and parameters.

Parameters:
bean - the object bean
methodName - the method name
parameterTypes - the method parameter types
Throws:
NoSuchMethodException - when the method cannot be found

HandlerMethod

public HandlerMethod(String beanName,
                     BeanFactory beanFactory,
                     Method method)
Constructs a new handler method with the given bean name and method. The bean name will be lazily initialized when createWithResolvedBean() is called.

Parameters:
beanName - the bean name
beanFactory - the bean factory to use for bean initialization
method - the method for the bean
Method Detail

getBean

public Object getBean()
Returns the bean for this handler method.


getMethod

public Method getMethod()
Returns the method for this handler method.


getBeanType

public Class<?> getBeanType()
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.


getBridgedMethod

protected Method getBridgedMethod()
If the bean method is a bridge method, this method returns the bridged (user-defined) method. Otherwise it returns the same method as getMethod().


getMethodParameters

public MethodParameter[] getMethodParameters()
Returns the method parameters for this handler method.


getReturnType

public MethodParameter getReturnType()
Returns the method return type, as MethodParameter.


isVoid

public boolean isVoid()
Returns true if the method return type is void, false otherwise.


getMethodAnnotation

public <A extends Annotation> A getMethodAnnotation(Class<A> annotationType)
Returns a single annotation on the underlying method traversing its super methods if no annotation can be found on the given method itself.

Parameters:
annotationType - the type of annotation to introspect the method for.
Returns:
the annotation, or null if none found

createWithResolvedBean

public HandlerMethod createWithResolvedBean()
If the provided instance contains a bean name rather than an object instance, the bean name is resolved before a HandlerMethod is created and returned.


equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object