|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor
public class InitDestroyAnnotationBeanPostProcessor
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.
setInitAnnotationType(java.lang.Class extends java.lang.annotation.Annotation>)
,
setDestroyAnnotationType(java.lang.Class extends java.lang.annotation.Annotation>)
,
CommonAnnotationBeanPostProcessor
,
Serialized FormConstructor 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 |
---|
public InitDestroyAnnotationBeanPostProcessor()
Method Detail |
---|
public void setInitAnnotationType(Class<? extends Annotation> initAnnotationType)
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.
public void setDestroyAnnotationType(Class<? extends Annotation> destroyAnnotationType)
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.
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException
BeanPostProcessor
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.
postProcessBeforeInitialization
in interface BeanPostProcessor
bean
- the new bean instancebeanName
- the name of the bean
BeansException
- in case of errorsInitializingBean.afterPropertiesSet()
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException
BeanPostProcessor
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.
postProcessAfterInitialization
in interface BeanPostProcessor
bean
- the new bean instancebeanName
- the name of the bean
BeansException
- in case of errorsInitializingBean.afterPropertiesSet()
,
FactoryBean
public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException
DestructionAwareBeanPostProcessor
Like DisposableBean's destroy
and a custom destroy method,
this callback just applies to singleton beans in the factory (including
inner beans).
postProcessBeforeDestruction
in interface DestructionAwareBeanPostProcessor
bean
- the bean instance to be destroyedbeanName
- the name of the bean
BeansException
- in case of errorsDisposableBean
,
AbstractBeanDefinition.setDestroyMethodName(java.lang.String)
|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |