Package 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
Description
`protected final org.apache.commons.logging.Log`
`logger`
Logger available to subclasses.

## Constructor Summary

Constructors
Constructor
Description
`BeanConfigurerSupport()`

## Method Summary

Modifier and Type
Method
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 Details

### logger

protected final org.apache.commons.logging.Log logger
Logger available to subclasses.

## Constructor Details

### BeanConfigurerSupport

public BeanConfigurerSupport()

## Method Details

### 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

@Nullable 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`)