org.springframework.beans.factory.config
Interface BeanPostProcessor

All Known Implementing Classes:
AbstractAutoProxyCreator, ApplicationContextAwareProcessor

public interface BeanPostProcessor

Allows for custom modification of new bean instances, e.g. checking for marker interfaces or wrapping them with proxies.

Application contexts can auto-detect BeanPostProcessor beans in their bean definitions and apply them before any other beans get created. Plain bean factories allow for programmatic registration of post-processors.

Typically, post-processors that populate beans via marker interfaces or the like will implement postProcessBeforeInitialization, and post-processors that wrap beans with proxies will normally implement postProcessAfterInitialization.

Author:
Juergen Hoeller
Since: 10.10.2003
See Also: ConfigurableBeanFactory.addBeanPostProcessor(org.springframework.beans.factory.config.BeanPostProcessor), BeanFactoryPostProcessor

Method Summary
 ObjectpostProcessAfterInitialization(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).
 ObjectpostProcessBeforeInitialization(Object bean, String name)
          Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method).

Method Detail

postProcessAfterInitialization

public Object postProcessAfterInitialization(Object bean, String name)
throws org.springframework.beans.BeansException
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.
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
Throws:
org.springframework.beans.BeansException - in case of errors

postProcessBeforeInitialization

public Object postProcessBeforeInitialization(Object bean, String name)
throws org.springframework.beans.BeansException
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.
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
Throws:
org.springframework.beans.BeansException - in case of errors