站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > Spring Framework 2.1.0 API 文档英文版

BeanPostProcessor (Spring Framework API 2.1) - Spring Framework 2.1.0 API 文档英文版


The Spring Framework

org.springframework.beans.factory.config
Interface BeanPostProcessor

All Known Subinterfaces:
DestructionAwareBeanPostProcessor, InstantiationAwareBeanPostProcessor, SmartInstantiationAwareBeanPostProcessor
All Known Implementing Classes:
AbstractAdvisorAutoProxyCreator, AbstractAutoProxyCreator, ActionServletAwareProcessor, AdvisorAdapterRegistrationManager, AnnotationAwareAspectJAutoProxyCreator, ApplicationContextAwareProcessor, AspectJAwareAdvisorAutoProxyCreator, AutowiredAnnotationBeanPostProcessor, BeanNameAutoProxyCreator, BootstrapContextAwareProcessor, CommonAnnotationBeanPostProcessor, DefaultAdvisorAutoProxyCreator, InitDestroyAnnotationBeanPostProcessor, InstantiationAwareBeanPostProcessorAdapter, PersistenceAnnotationBeanPostProcessor, PersistenceExceptionTranslationPostProcessor, PortletContextAwareProcessor, RequiredAnnotationBeanPostProcessor, ScriptFactoryPostProcessor, ServletContextAwareProcessor, SimplePortletPostProcessor, 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:
InstantiationAwareBeanPostProcessor, DestructionAwareBeanPostProcessor, 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

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

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.

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.

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
Throws:
BeansException - in case of errors
See Also:
InitializingBean.afterPropertiesSet(), FactoryBean

The Spring Framework

Copyright © 2002-2007 The Spring Framework.