Package org.springframework.beans.factory.config

# Interface DestructionAwareBeanPostProcessor

All Superinterfaces:
  `BeanPostProcessor`

All Known Implementing Classes:
  `InitDestroyAnnotationBeanPostProcessor`

public interface DestructionAwareBeanPostProcessor extends BeanPostProcessor
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 Type
Method
Description
`void`
`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

void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException
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 destroyed
  `beanName` - the name of the bean
Throws:
  `BeansException` - in case of errors
See Also:
  - `DisposableBean.destroy()`
  - `AbstractBeanDefinition.setDestroyMethodName(String)`

### requiresDestruction

default boolean requiresDestruction(Object bean)
Determine whether the given bean instance requires destruction by this post-processor.

The default implementation returns `true`. If a pre-5 implementation of `DestructionAwareBeanPostProcessor` does not provide a concrete implementation of this method, Spring silently assumes `true` as well.

Parameters:
  `bean` - the bean instance to check
Returns:
  `true` if `postProcessBeforeDestruction(java.lang.Object, java.lang.String)` is supposed to be called for this bean instance eventually, or `false` if not needed
Since:
  4.3