Spring中Bean的加载时机

先来说几个Spring的重要组件:

BeanPostProcessor接口:拦截所有容器中的Bean,并且可以完成Bean的创建-->初始化-->销毁。

BeanFactoryPostProcessor接口:拦截容器。

BeanDefinitionRegistryPostProcessor接口:在Bean的声明即将被加载之前调用。

Spring中Bean的加载时机

这里可以理解为BeanPostProcessor中的一个个bean被放入BeanFactoryPostProcessor中:

Spring中Bean的加载时机

这里还需要注意一下:BeanDefinitionRegistryPostProcessor接口继承BeanFactoryPostProcessor接口,所以后者有的方法前者也有,如果在前者中调用方法,则先执行;反之,如果在后者中调用方法,则后执行(加载时机不同)。