Interface DestructionAwareBeanPostProcessor
- All Superinterfaces:
BeanPostProcessor
- All Known Implementing Classes:
CommonAnnotationBeanPostProcessor
,InitDestroyAnnotationBeanPostProcessor
,PersistenceAnnotationBeanPostProcessor
,ScheduledAnnotationBeanPostProcessor
,SimpleServletPostProcessor
Subinterface of
BeanPostProcessor
that adds a before-destruction callback.
The typical usage will be to invoke custom destruction callbacks on specific bean types, matching corresponding initialization callbacks.
- Since:
- 1.0.1
- Author:
- Juergen Hoeller
-
Method Summary
Modifier and TypeMethodDescriptionvoid
postProcessBeforeDestruction
(Object bean, String beanName) Apply this BeanPostProcessor to the given bean instance before its destruction, for example, invoking custom destruction callbacks.default boolean
requiresDestruction
(Object bean) Determine whether the given bean instance requires destruction by this post-processor.Methods inherited from interface org.springframework.beans.factory.config.BeanPostProcessor
postProcessAfterInitialization, postProcessBeforeInitialization
-
Method Details
-
postProcessBeforeDestruction
Apply this BeanPostProcessor to the given bean instance before its destruction, for example, invoking custom destruction callbacks.Like DisposableBean's
destroy
and a custom destroy method, this callback will only apply to beans which the container fully manages the lifecycle for. This is usually the case for singletons and scoped beans.- Parameters:
bean
- the bean instance to be destroyedbeanName
- the name of the bean- Throws:
BeansException
- in case of errors- See Also:
-
requiresDestruction
Determine whether the given bean instance requires destruction by this post-processor.The default implementation returns
true
. If a pre-5 implementation ofDestructionAwareBeanPostProcessor
does not provide a concrete implementation of this method, Spring silently assumestrue
as well.- Parameters:
bean
- the bean instance to check- Returns:
true
ifpostProcessBeforeDestruction(java.lang.Object, java.lang.String)
is supposed to be called for this bean instance eventually, orfalse
if not needed- Since:
- 4.3
-