## 十八、Spring的后置处理器BeanPostProcessor

我们先来看一下BeanPostProcessor的家族体系,这五个接口是实现Spring容器扩展的关键接口,所有的后置处理器必须实现这里面的其中之一或者好几个接口,才能在spring容器创建每个bean时的整个流程中的不同阶段对bean做出定制化的修改。这就是BeanPostProcessor的核心,同时也指出,这个是采用了观察者模式,AbstractAppliacationContext持有BeanFactory,在BeanFactory创建后,先往BeanFactory中添加一系列的后置处理器,那么在调用BeanFactory的getBean方法去获取bean的时候,在不同阶段回调之前在BeanFactory中添加的一系列的后置处理器的不同方法,从而干涉到Bean的整个创建过程,通过细化BeanPostProcessor接口成好多的子接口,就是为了达到一种精细化控制bean创建过程的目的。

那么其实在这里已经很明显了,问题只剩两个。其一,Bean的创建过程分为哪几个阶段。其二,后置处理器又是分别在哪些阶段切入进去的。如果这两个问题搞清楚了,那么后置处理器也就弄明白了。

但这里值得注意的是后置处理器
## 十八、Spring的后置处理器BeanPostProcessor