## 接口的使用
org.springframework.beans.factory.config.BeanPostProcessor

- 使用BeanPostProcessor的程序包
  程序包 | 说明
  --- | ---
  org.springframework.beans.factory.annotation | Support package for annotation-driven bean configuration.
  org.springframework.beans.factory.config | SPI interfaces and configuration-related convenience classes for bean factories.
  org.springframework.beans.factory.support | Classes supporting the `org.springframework.beans.factory` package.

- - ### org.springframework.beans.factory.annotation中BeanPostProcessor的使用

    实现BeanPostProcessor的org.springframework.beans.factory.annotation中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `AutowiredAnnotationBeanPostProcessor` `BeanPostProcessor` implementation that autowires annotated fields, setter methods and arbitrary config methods.
    `class` | `InitDestroyAnnotationBeanPostProcessor` `BeanPostProcessor` implementation that invokes annotated init and destroy methods.
    `class` | `RequiredAnnotationBeanPostProcessor` `BeanPostProcessor` implementation that enforces required JavaBean properties to have been configured.

  - ### org.springframework.beans.factory.config中BeanPostProcessor的使用

    org.springframework.beans.factory.config中BeanPostProcessor的子接口
    限定符和类型 | 接口和说明
    --- | ---
    `interface` | `DestructionAwareBeanPostProcessor` Subinterface of `BeanPostProcessor` that adds a before-destruction callback.
    `interface` | `InstantiationAwareBeanPostProcessor` Subinterface of `BeanPostProcessor` that adds a before-instantiation callback, and a callback after instantiation but before explicit properties are set or autowiring occurs.
    `interface` | `SmartInstantiationAwareBeanPostProcessor` Extension of the `InstantiationAwareBeanPostProcessor` interface, adding a callback for predicting the eventual type of a processed bean.

    实现BeanPostProcessor的org.springframework.beans.factory.config中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `InstantiationAwareBeanPostProcessorAdapter` Adapter that implements all methods on `SmartInstantiationAwareBeanPostProcessor` as no-ops, which will not change normal processing of each bean instantiated by the container.

    参数类型为BeanPostProcessor的org.springframework.beans.factory.config中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | ConfigurableBeanFactory.`addBeanPostProcessor(BeanPostProcessor beanPostProcessor)` Add a new BeanPostProcessor that will get applied to beans created by this factory.

  - ### org.springframework.beans.factory.support中BeanPostProcessor的使用

    org.springframework.beans.factory.support中BeanPostProcessor的子接口
    限定符和类型 | 接口和说明
    --- | ---
    `interface` | `MergedBeanDefinitionPostProcessor` Post-processor callback interface for merged bean definitions at runtime.

    返回变量类型为BeanPostProcessor的类型的org.springframework.beans.factory.support中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `List<BeanPostProcessor>` | AbstractBeanFactory.`getBeanPostProcessors()` Return the list of BeanPostProcessors that will get applied to beans created with this factory.

    参数类型为BeanPostProcessor的org.springframework.beans.factory.support中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | AbstractBeanFactory.`addBeanPostProcessor(BeanPostProcessor beanPostProcessor)`