Spring生命周期中几种重要的BeanPostProcessor
一、InstantiationAwareBeanPostProcessor
postProcessBeforeInstantiation用于在创建bean实例之前返回一个bean实例,比如代理。
如果InstantiationAwareBeanPostProcessor返回了bean,将会执行几种BeanPostProcessor的postProcessAfterInitialization方法
postProcessAfterInstantiation用于判断是否需要填充bean
postProcessPropertyValues用于填充bean
二、MergedBeanDefinitionPostProcessor
用于解析bean的依赖信息,比如解析Autowired和resource注解、set方法等依赖的bean
并生成InjectionMetadata缓存起来
三、BeanPostProcessor
postProcessBeforeInitialization在初始化之前执行
postProcessAfterInitialization在初始化之后执行
四、SmartInstantiationAwareBeanPostProcessor
提前暴露时用于创建代理