## org.springframework.context.weaving
Class LoadTimeWeaverAwareProcessor

    java.lang.Object
      org.springframework.context.weaving.LoadTimeWeaverAwareProcessor

All Implemented Interfaces:
  BeanFactoryAware, BeanPostProcessor

    public class LoadTimeWeaverAwareProcessor

extends Object
implements BeanPostProcessor, BeanFactoryAware

`BeanPostProcessor` implementation that passes the context's default `LoadTimeWeaver` to beans that implement the `LoadTimeWeaverAware` interface.

`Application contexts` will automatically register this with their underlying `bean factory`, provided that a default `LoadTimeWeaver` is actually available.

Applications should not use this class directly.

Since:
  2.5
Author:
  Juergen Hoeller
See Also:
  `LoadTimeWeaverAware`, `ConfigurableApplicationContext.LOAD_TIME_WEAVER_BEAN_NAME`

Constructor Summary
`LoadTimeWeaverAwareProcessor()` Create a new `LoadTimeWeaverAwareProcessor` that will auto-retrieve the `LoadTimeWeaver` from the containing `BeanFactory`, expecting a bean named `"loadTimeWeaver"`.
`LoadTimeWeaverAwareProcessor(BeanFactory beanFactory)` Create a new `LoadTimeWeaverAwareProcessor`.
`LoadTimeWeaverAwareProcessor(LoadTimeWeaver loadTimeWeaver)` Create a new `LoadTimeWeaverAwareProcessor` for the given `LoadTimeWeaver`.

Method Summary
`Object` `postProcessAfterInitialization(Object bean, String name)` Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks (like InitializingBean's `afterPropertiesSet` or a custom init-method).
`Object` `postProcessBeforeInitialization(Object bean, String beanName)` Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks (like InitializingBean's `afterPropertiesSet` or a custom init-method).
`void` `setBeanFactory(BeanFactory beanFactory)` Callback that supplies the owning factory to a bean instance.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### LoadTimeWeaverAwareProcessor

    public LoadTimeWeaverAwareProcessor()

  Create a new `LoadTimeWeaverAwareProcessor` that will auto-retrieve the `LoadTimeWeaver` from the containing `BeanFactory`, expecting a bean named `"loadTimeWeaver"`.

### LoadTimeWeaverAwareProcessor

    public LoadTimeWeaverAwareProcessor(LoadTimeWeaver loadTimeWeaver)

  Create a new `LoadTimeWeaverAwareProcessor` for the given `LoadTimeWeaver`.

  If the given `loadTimeWeaver` is `null`, then a `LoadTimeWeaver` will be auto-retrieved from the containing `BeanFactory`, expecting a bean named `"loadTimeWeaver"`.

  Parameters:
    `loadTimeWeaver` - the specific `LoadTimeWeaver` that is to be used

### LoadTimeWeaverAwareProcessor

    public LoadTimeWeaverAwareProcessor(BeanFactory beanFactory)

  Create a new `LoadTimeWeaverAwareProcessor`.

  The `LoadTimeWeaver` will be auto-retrieved from the given `BeanFactory`, expecting a bean named `"loadTimeWeaver"`.

  Parameters:
    `beanFactory` - the BeanFactory to retrieve the LoadTimeWeaver from

Method Detail

### setBeanFactory

    public void setBeanFactory(BeanFactory beanFactory)

  Description copied from interface: `BeanFactoryAware`
  Callback that supplies the owning factory to a bean instance.

  Invoked after the population of normal bean properties but before an initialization callback such as `InitializingBean.afterPropertiesSet()` or a custom init-method.

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

### postProcessBeforeInitialization

    public Object postProcessBeforeInitialization(Object bean,
                                                  String beanName)
                                           throws BeansException

  Description copied from interface: `BeanPostProcessor`
  Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks (like InitializingBean's `afterPropertiesSet` or a custom init-method). The bean will already be populated with property values. The returned bean instance may be a wrapper around the original.

  Specified by:
    `postProcessBeforeInitialization` in interface `BeanPostProcessor`
  Parameters:
    `bean` - the new bean instance
    `beanName` - the name of the bean
  Returns:
    the bean instance to use, either the original or a wrapped one; if `null`, no subsequent BeanPostProcessors will be invoked
  Throws:
    `BeansException` - in case of errors
  See Also:
    `InitializingBean.afterPropertiesSet()`

### postProcessAfterInitialization

    public Object postProcessAfterInitialization(Object bean,
                                                 String name)

  Description copied from interface: `BeanPostProcessor`
  Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks (like InitializingBean's `afterPropertiesSet` or a custom init-method). The bean will already be populated with property values. The returned bean instance may be a wrapper around the original.

  In case of a FactoryBean, this callback will be invoked for both the FactoryBean instance and the objects created by the FactoryBean (as of Spring 2.0). The post-processor can decide whether to apply to either the FactoryBean or created objects or both through corresponding `bean instanceof FactoryBean` checks.

  This callback will also be invoked after a short-circuiting triggered by a `InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)` method, in contrast to all other BeanPostProcessor callbacks.

  Specified by:
    `postProcessAfterInitialization` in interface `BeanPostProcessor`
  Parameters:
    `bean` - the new bean instance
    `name` - the name of the bean
  Returns:
    the bean instance to use, either the original or a wrapped one; if `null`, no subsequent BeanPostProcessors will be invoked
  See Also:
    `InitializingBean.afterPropertiesSet()`, `FactoryBean`