问题描述
在运行 SpringBoot 源码的时候发现:如果在 AbstractApplicationContext.refresh().invokeBeanFactoryPostProcessors(beanFactory);
打上断点,程序会两次停在此位置。所以我比较了两次的 Context
的类型,两次分别是:AnnotationConfigServletWebServerApplicationContext
和 AnnotationConfigApplicationContext
,当然两者的具体细节我还没有比较,只知道两者都有 Bean Factory
,所以说是不是多余的?或者说之前创建的 AnnotationConfigApplicationContext
有什么作用?希望各位大佬能给我个答案,谢谢。
两者简单比较
1. AnnotationConfigServletWebServerApplicationContext
我们自定义的bean基本都在这里加载
2. AnnotationConfigApplicationContext
虽然没有我们自定义的Bean和入口类,但是也有21左右的Bean定义,和1的运行流程类似
运行截图
第一次DEBUG暂停
第二次DEBUG暂停