org.springframework.web.bind.support

## Class DefaultDataBinderFactory

- java.lang.Object
- - org.springframework.web.bind.support.DefaultDataBinderFactory

- All Implemented Interfaces:
    WebDataBinderFactory
  Direct Known Subclasses:
    InitBinderDataBinderFactory

      public class DefaultDataBinderFactory
      extends Object
      implements WebDataBinderFactory

  Create a `WebRequestDataBinder` instance and initialize it with a `WebBindingInitializer`.
  Since:
    3.1
  Author:
    Rossen Stoyanchev

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultDataBinderFactory(WebBindingInitializer initializer)` Create new instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `WebDataBinder` | `createBinder(NativeWebRequest webRequest, Object target, String objectName)` Create a new `WebDataBinder` for the given target object and initialize it through a `WebBindingInitializer`.
    `protected WebDataBinder` | `createBinderInstance(Object target, String objectName, NativeWebRequest webRequest)` Extension point to create the WebDataBinder instance.
    `protected void` | `initBinder(WebDataBinder dataBinder, NativeWebRequest webRequest)` Extension point to further initialize the created data binder instance (e.g.

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

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

- - ### Constructor Detail

    - #### DefaultDataBinderFactory

          public DefaultDataBinderFactory(WebBindingInitializer initializer)

      Create new instance.
      Parameters:
        `initializer` - for global data binder intialization, or `null`

  - ### Method Detail

    - #### createBinder

          public final WebDataBinder createBinder(NativeWebRequest webRequest,
                                   Object target,
                                   String objectName)
                                           throws Exception

      Create a new `WebDataBinder` for the given target object and initialize it through a `WebBindingInitializer`.
      Specified by:
        `createBinder` in interface `WebDataBinderFactory`
      Parameters:
        `webRequest` - the current request
        `target` - the object to create a data binder for, or `null` if creating a binder for a simple type
        `objectName` - the name of the target object
      Returns:
        the created `WebDataBinder` instance, never null
      Throws:
        `Exception` - in case of invalid state or arguments

    - #### createBinderInstance

          protected WebDataBinder createBinderInstance(Object target,
                                           String objectName,
                                           NativeWebRequest webRequest)
                                                throws Exception

      Extension point to create the WebDataBinder instance. By default this is `WebRequestDataBinder`.
      Parameters:
        `target` - the binding target or `null` for type conversion only
        `objectName` - the binding target object name
        `webRequest` - the current request
      Throws:
        `Exception` - in case of invalid state or arguments

    - #### initBinder

          protected void initBinder(WebDataBinder dataBinder,
                        NativeWebRequest webRequest)
                             throws Exception

      Extension point to further initialize the created data binder instance (e.g. with `@InitBinder` methods) after "global" initializaton via `WebBindingInitializer`.
      Parameters:
        `dataBinder` - the data binder instance to customize
        `webRequest` - the current request
      Throws:
        `Exception` - if initialization fails