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

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


The Spring Framework

org.springframework.beans.factory.annotation
Class InitDestroyAnnotationBeanPostProcessor

java.lang.Object
  extended by org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor
All Implemented Interfaces:
Serializable, BeanPostProcessor, DestructionAwareBeanPostProcessor
Direct Known Subclasses:
CommonAnnotationBeanPostProcessor

public class InitDestroyAnnotationBeanPostProcessor
extends Object
implements DestructionAwareBeanPostProcessor, Serializable

BeanPostProcessor implementation that invokes annotated init and destroy methods. Allows for an annotation alternative to Spring's InitializingBean and DisposableBean callback interfaces.

The actual annotation types that this post-processor checks for can be configured through the "initAnnotationType" and "destroyAnnotationType" properties. Any custom annotation can be used, since there are no required annotation attributes.

Init and destroy annotations may be applied to methods of any visibility: public, package-protected, protected, or private. Multiple such methods may be annotated, but it is recommended to only annotate one single init method and destroy method, respectively.

Spring's CommonAnnotationBeanPostProcessor supports the JSR-250 PostConstruct and PreDestroy annotations out of the box, as init annotation and destroy annotation, respectively. Furthermore, it also supports the Resource annotation for annotation-driven injection of named beans.

Since:
2.1
Author:
Juergen Hoeller
See Also:
setInitAnnotationType(java.lang.Class), setDestroyAnnotationType(java.lang.Class), CommonAnnotationBeanPostProcessor, Serialized Form

Constructor Summary
InitDestroyAnnotationBeanPostProcessor()
           
 
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).
 void postProcessBeforeDestruction(Object bean, String beanName)
          Apply this BeanPostProcessor to the given bean instance before its destruction.
 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 setDestroyAnnotationType(Class<? extends Annotation> destroyAnnotationType)
          Specify the destroy annotation to check for, indicating destruction methods to call when the context is shutting down.
 void setInitAnnotationType(Class<? extends Annotation> initAnnotationType)
          Specify the init annotation to check for, indicating initialization methods to call after configuration of a bean.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InitDestroyAnnotationBeanPostProcessor

public InitDestroyAnnotationBeanPostProcessor()
Method Detail

setInitAnnotationType

public void setInitAnnotationType(Class<? extends Annotation> initAnnotationType)
Specify the init annotation to check for, indicating initialization methods to call after configuration of a bean.

Any custom annotation can be used, since there are no required annotation attributes. There is no default, although a typical choice is the JSR-250 PostConstruct annotation.


setDestroyAnnotationType

public void setDestroyAnnotationType(Class<? extends Annotation> destroyAnnotationType)
Specify the destroy annotation to check for, indicating destruction methods to call when the context is shutting down.

Any custom annotation can be used, since there are no required annotation attributes. There is no default, although a typical choice is the JSR-250 PreDestroy annotation.


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

postProcessAfterInitialization

public Object postProcessAfterInitialization(Object bean,
                                             String beanName)
                                      throws BeansException
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
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

postProcessBeforeDestruction

public void postProcessBeforeDestruction(Object bean,
                                         String beanName)
                                  throws BeansException
Description copied from interface: DestructionAwareBeanPostProcessor
Apply this BeanPostProcessor to the given bean instance before its destruction. Can invoke custom destruction callbacks.

Like DisposableBean's destroy and a custom destroy method, this callback just applies to singleton beans in the factory (including inner beans).

Specified by:
postProcessBeforeDestruction in interface DestructionAwareBeanPostProcessor
Parameters:
bean - the bean instance to be destroyed
beanName - the name of the bean
Throws:
BeansException - in case of errors
See Also:
DisposableBean, AbstractBeanDefinition.setDestroyMethodName(java.lang.String)

The Spring Framework

Copyright © 2002-2007 The Spring Framework.