注册bean是在refreshContext(context)方法中
一步步点进去,最终进入到AbstracApplicationContext.java中的refresh()中。spring注册bean有两个时机,
1:getBean的时候 2:初始化是的lazy-init设置的false。
finishBeanFactoryInitialization()点进去,可以看到有个getBean(),这里就是触发注册bean的地方了。
总结:
springboot run方法的大致步骤:
1、初始化环境(dev、test、gray、online)
2、打印banner
3、创建应用上下文(spring容器)
DefaultListableBeanFactory
refreshContext()才是创建bean的关进
4、注册监听器、事件处理器