org.springframework.web.method.annotation

## Class InitBinderDataBinderFactory

- java.lang.Object
- - org.springframework.web.bind.support.DefaultDataBinderFactory
  - - org.springframework.web.method.annotation.InitBinderDataBinderFactory

- All Implemented Interfaces:
    WebDataBinderFactory
  Direct Known Subclasses:
    ServletRequestDataBinderFactory

      public class InitBinderDataBinderFactory
      extends DefaultDataBinderFactory

  Adds initialization to a WebDataBinder via `@InitBinder` methods.
  Since:
    3.1
  Author:
    Rossen Stoyanchev

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `InitBinderDataBinderFactory(List<InvocableHandlerMethod> binderMethods, WebBindingInitializer initializer)` Create a new instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `initBinder(WebDataBinder binder, NativeWebRequest request)` Initialize a WebDataBinder with `@InitBinder` methods.
    `protected boolean` | `isBinderMethodApplicable(HandlerMethod initBinderMethod, WebDataBinder binder)` Return `true` if the given `@InitBinder` method should be invoked to initialize the given WebDataBinder.

    - ### Methods inherited from class org.springframework.web.bind.support.DefaultDataBinderFactory

      `createBinder, createBinderInstance`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### InitBinderDataBinderFactory

          public InitBinderDataBinderFactory(List<InvocableHandlerMethod> binderMethods,
                                     WebBindingInitializer initializer)

      Create a new instance.
      Parameters:
        `binderMethods` - `@InitBinder` methods, or `null`
        `initializer` - for global data binder intialization

  - ### Method Detail

    - #### initBinder

          public void initBinder(WebDataBinder binder,
                        NativeWebRequest request)
                          throws Exception

      Initialize a WebDataBinder with `@InitBinder` methods. If the `@InitBinder` annotation specifies attributes names, it is invoked only if the names include the target object name.
      Overrides:
        `initBinder` in class `DefaultDataBinderFactory`
      Parameters:
        `binder` - the data binder instance to customize
        `request` - the current request
      Throws:
        `Exception` - if one of the invoked @`InitBinder` methods fail.

    - #### isBinderMethodApplicable

          protected boolean isBinderMethodApplicable(HandlerMethod initBinderMethod,
                                         WebDataBinder binder)

      Return `true` if the given `@InitBinder` method should be invoked to initialize the given WebDataBinder.

      The default implementation checks if target object name is included in the attribute names specified in the `@InitBinder` annotation.