springIOC的源码流程

IOC:

  1. IOC是一个容器
  2. 容器启动时创建所有单实例对象
  3. 我们可以直接从容器中获取到这个对象

SpringIOC:

  1. IOC容器的启动过程?启动期间都做了什么(什么时候创建所有单实例bean)
  2. IOC是如何创建这些单实例bean,并如何管理的;到底保存在哪里?

springIOC的源码流程
springIOC的源码流程
将Car类注入ioc容器中,在通过new AnnotationConfigApplicationContext(Car.class);注解方式获取到Car的bean。

springIOC的源码流程
主要调用来至父类AbstractApplicationContext中的模版方法refresh()方法,进入到this.refresh() 后会跳到AbstractApplicationContext类中

springIOC的源码流程
点击this.finishBeanFactoryInitialization(beanFactory)跳转
springIOC的源码流程
点击进入beanFactory.preInstantiateSingletons();会进入到DefaultListableBeanFactory

springIOC的源码流程
springIOC的源码流程
循环一次则创建一个bean实例,以上就是ioc容器的创建单实例bean的过程,后续则是getBean的细节部分,
点击getBean(BeanName),进入到AbstractBeanFactory类中
springIOC的源码流程
springIOC的源码流程
springIOC的源码流程
springIOC的源码流程
springIOC的源码流程
直接进入到getSingleton()方法中
springIOC的源码流程
springIOC的源码流程
springIOC的源码流程
观察控制台,已经打印了car construction…
springIOC的源码流程
springIOC的源码流程
创建好的对象最终会保存在一个map中;DefaultSingletonBeanRegistry-singletonObjects

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-19
  • 2021-04-28
  • 2021-07-30
  • 2021-10-25
  • 2022-01-15
  • 2021-07-27
猜你喜欢
  • 2021-05-06
  • 2021-11-18
  • 2021-06-22
  • 2021-09-09
  • 2021-12-28
  • 2022-12-23
  • 2021-06-05
相关资源
相似解决方案