org.springframework.beans.factory.wiring

## Class BeanConfigurerSupport

- java.lang.Object
- - org.springframework.beans.factory.wiring.BeanConfigurerSupport

- All Implemented Interfaces:
    Aware, BeanFactoryAware, DisposableBean, InitializingBean

      public class BeanConfigurerSupport
      extends Object
      implements BeanFactoryAware, InitializingBean, DisposableBean

  Convenient base class for bean configurers that can perform Dependency Injection on objects (however they may be created). Typically subclassed by AspectJ aspects.

  Subclasses may also need a custom metadata resolution strategy, in the `BeanWiringInfoResolver` interface. The default implementation looks for a bean with the same name as the fully-qualified class name. (This is the default name of the bean in a Spring XML file if the '`id`' attribute is not used.)

  Since:
    2.0
  Author:
    Rob Harrop, Rod Johnson, Juergen Hoeller, Adrian Colyer
  See Also:
    `setBeanWiringInfoResolver(org.springframework.beans.factory.wiring.BeanWiringInfoResolver)`, `ClassNameBeanWiringInfoResolver`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Log` | `logger` Logger available to subclasses

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BeanConfigurerSupport()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()` Check that a `BeanFactory` has been set.
    `void` | `configureBean(Object beanInstance)` Configure the bean instance.
    `protected BeanWiringInfoResolver` | `createDefaultBeanWiringInfoResolver()` Create the default BeanWiringInfoResolver to be used if none was specified explicitly.
    `void` | `destroy()` Release references to the `BeanFactory` and `BeanWiringInfoResolver` when the container is destroyed.
    `void` | `setBeanFactory(BeanFactory beanFactory)` Set the `BeanFactory` in which this aspect must configure beans.
    `void` | `setBeanWiringInfoResolver(BeanWiringInfoResolver beanWiringInfoResolver)` Set the `BeanWiringInfoResolver` to use.

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

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

- - ### Field Detail

    - #### logger

          protected final Log logger

      Logger available to subclasses

  - ### Constructor Detail

    - #### BeanConfigurerSupport

          public BeanConfigurerSupport()

  - ### Method Detail

    - #### setBeanWiringInfoResolver

          public void setBeanWiringInfoResolver(BeanWiringInfoResolver beanWiringInfoResolver)

      Set the `BeanWiringInfoResolver` to use.

      The default behavior is to look for a bean with the same name as the class. As an alternative, consider using annotation-driven bean wiring.

      See Also:
        `ClassNameBeanWiringInfoResolver`, `AnnotationBeanWiringInfoResolver`

    - #### setBeanFactory

          public void setBeanFactory(BeanFactory beanFactory)

      Set the `BeanFactory` in which this aspect must configure beans.
      Specified by:
        `setBeanFactory` in interface `BeanFactoryAware`
      Parameters:
        `beanFactory` - owning BeanFactory (never `null`). The bean can immediately call methods on the factory.
      See Also:
        `BeanInitializationException`

    - #### createDefaultBeanWiringInfoResolver

          protected BeanWiringInfoResolver createDefaultBeanWiringInfoResolver()

      Create the default BeanWiringInfoResolver to be used if none was specified explicitly.

      The default implementation builds a `ClassNameBeanWiringInfoResolver`.

      Returns:
        the default BeanWiringInfoResolver (never `null`)

    - #### afterPropertiesSet

          public void afterPropertiesSet()

      Check that a `BeanFactory` has been set.
      Specified by:
        `afterPropertiesSet` in interface `InitializingBean`

    - #### destroy

          public void destroy()

      Release references to the `BeanFactory` and `BeanWiringInfoResolver` when the container is destroyed.
      Specified by:
        `destroy` in interface `DisposableBean`

    - #### configureBean

          public void configureBean(Object beanInstance)

      Configure the bean instance.

      Subclasses can override this to provide custom configuration logic. Typically called by an aspect, for all bean instances matched by a pointcut.

      Parameters:
        `beanInstance` - the bean instance to configure (must not be `null`)