目的
从扫描bean的原理 到 @Configuration源码
这之间的几篇关于spring源码的博客,都是围绕着一个方法来解析的
invokeBeanFactoryPostProcessors(beanFactory);
org.springframework.context.support.AbstractApplicationContext#invokeBeanFactoryPostProcessors
所以,打算在这篇博客中,对这个方法做一个小总结
- 在进入到该方法的时候,首先会执行程序员通过api(ac.addBeanFactoryPostProcessor();)注入的BeanFactoryPostProcessor的实现类(这里需要注意:如果一个类实现了BeanFactoryPostProcessor或者实现了BeanDefinitionRegistryPostProcessor接口,我们都可以称之为BeanFactoryPostProcessor的实现类)
- 会先执行上面第一步注入的BeanFactoryPostProcessor的子接口BeanDefinitionRegistryPostProcessor对应的实现类,此时,执行的就是程序员自己实现的业务逻辑代码,但是这种场景应该会比较少吧,因为毕竟这时候,连bean都还没有扫描到beanDefinitionMap中,但是既然spring提供了响应的扩展点,总归是会有用到的场景
- 如果程序员没有通过api提供实现类ÿ