Spring的后处理器是Spring对外开发的重要扩展点,允许我们介入到Bean的整个实例化流程中来,以达到动态注册BeanDefiniton、动态修改BeanDefinition,以及动态修改Bean的作用。
Spring主要由2种后处理器:
- BeanFactoryPostProcessor:Bean工厂后处理器,在BeanDefinitionMap填充完毕,Bean实例化之前执行;
- BeanPostProcessor:Bean后处理器,一般在Bean实例化之后,填充到单例池singletonObjects之前执行。
注:post processor : 后处理器
BeanFactoryPostProcessor:
是一个接口规范,实现了该接口的类只要交由Spring容器管理的话,那么Spring就会回调该接口的方法,用于对BeanDefinition注册和修改的功能。
BeanPostProcessor:
Bean被实例化后,到最终缓存到名为singletonObjects的单例池之前,中间会经过Bean的初始化过程,这个过程我们称为Bean后处理。跟Bean工厂后处理器相似,BeanPostProcessor也是一个接口,会在流程节点上被Spring自动调用。