Package org.springframework.beans.factory.support

# Interface MergedBeanDefinitionPostProcessor

All Superinterfaces:
  `BeanPostProcessor`

All Known Implementing Classes:
  `AutowiredAnnotationBeanPostProcessor`, `InitDestroyAnnotationBeanPostProcessor`

public interface MergedBeanDefinitionPostProcessor extends BeanPostProcessor
Post-processor callback interface for merged bean definitions at runtime. `BeanPostProcessor` implementations may implement this sub-interface in order to post-process the merged bean definition (a processed copy of the original bean definition) that the Spring `BeanFactory` uses to create a bean instance.

The `postProcessMergedBeanDefinition(org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Class<?>, java.lang.String)` method may for example introspect the bean definition in order to prepare some cached metadata before post-processing actual instances of a bean. It is also allowed to modify the bean definition but only for definition properties which are actually intended for concurrent modification. Essentially, this only applies to operations defined on the `RootBeanDefinition` itself but not to the properties of its base classes.

Since:
  2.5
Author:
  Juergen Hoeller
See Also:
  - `ConfigurableBeanFactory.getMergedBeanDefinition(java.lang.String)`

## Method Summary

Modifier and Type
Method
Description
`void`
`postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class<?> beanType, String beanName)`
Post-process the given merged bean definition for the specified bean.
`default void`
`resetBeanDefinition(String beanName)`
A notification that the bean definition for the specified name has been reset, and that this post-processor should clear any metadata for the affected bean.

### Methods inherited from interface org.springframework.beans.factory.config.BeanPostProcessor

`postProcessAfterInitialization, postProcessBeforeInitialization`

## Method Details

### postProcessMergedBeanDefinition

void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class<?> beanType, String beanName)
Post-process the given merged bean definition for the specified bean.

Parameters:
  `beanDefinition` - the merged bean definition for the bean
  `beanType` - the actual type of the managed bean instance
  `beanName` - the name of the bean
See Also:
  - `AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Class<?>, java.lang.String)`

### resetBeanDefinition

default void resetBeanDefinition(String beanName)
A notification that the bean definition for the specified name has been reset, and that this post-processor should clear any metadata for the affected bean.

The default implementation is empty.

Parameters:
  `beanName` - the name of the bean
Since:
  5.1
See Also:
  - `DefaultListableBeanFactory.resetBeanDefinition(java.lang.String)`