Spring 拓展点总结
BeanDefinitionRegistryPostProcessor接口
- 执行postProcessBeanDefinitionRegistry()方法
- 执行postProcessBeanFactory()方法
在这个接口的方法是在注册BeanDefinition后执行的,因此可以获取到BeanDefinition,并且对其进行修改(比较少用)
BeanFactoryPostProcessor接口
- 执行postProcessBeanFactory()方法
获取到BeanDefinition,并且对其进行修改(比较少用)
InstantiationAwareBeanPostProcessor接口
- 执行postProcessBeforeInstantiation()方法
获取到BeanDefinition,并且对其进行修改(比较少用)
MergedBeanDefinitionPostProcessor接口
- 执行postProcessMergedBeanDefinition()方法
可以对Bean生成前做一些准备工作。
InstantiationAwareBeanPostProcessor接口
- 执行postProcessAfterInstantiation()方法
最后修改BeanDefinition的机会
InstantiationAwareBeanPostProcessor接口
- 执行postProcessProperties()方法
这里是Spring进行自动注入的接口,在这可以进行对Bean的干预。
BeanPostProcessor
- 执行postProcessBeforeInitialization()方法
初始化前执行的方法,可以干预Bean的生成
InitializingBean接口
- 执行afterPropertiesSet()方法
对Bean进行初始化操作
SmartInitializingSingleton 接口
- 执行afterSingletonsInstantiated()方法
这个借口是针对所有单例bean生成后执行的方法。