org.springframework.beans.factory.config
Interface BeanPostProcessor

All Known Subinterfaces:
DestructionAwareBeanPostProcessor
All Known Implementing Classes:
AbstractAutoProxyCreator, ActionServletAwareProcessor, AdvisorAdapterRegistrationManager, ApplicationContextAwareProcessor, ServletContextAwareProcessor, SimpleServletPostProcessor

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.

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

Method Summary
 Object postProcessAfterInitialization(Object bean, String beanName)
          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).
 

Method Detail

postProcessBeforeInitialization

public Object postProcessBeforeInitialization(Object bean,
                                              String beanName)
                                       throws 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
beanName - the beanName of the bean
Returns:
the bean instance to use, either the original or a wrapped one
Throws:
BeansException - in case of errors
See Also:
InitializingBean.afterPropertiesSet()

postProcessAfterInitialization

public Object postProcessAfterInitialization(Object bean,
                                             String beanName)
                                      throws 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
beanName - the beanName of the bean
Returns:
the bean instance to use, either the original or a wrapped one
Throws:
BeansException - in case of errors
See Also:
InitializingBean.afterPropertiesSet()


Copyright (C) 2003-2004 The Spring Framework Project.