## org.springframework.web.method
Class HandlerMethod

    java.lang.Object
      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`