0
点赞
收藏
分享

微信扫一扫

照着SpringIOC源码流程图,跟面试官一顿侃,厉害了!

Java架构领域 2021-09-30 阅读 66

直接干货

AbstractApplicationContext的refresh()方法是spring的核心,在其中完成了容器的初始化。我们先简单看下业务Bean的声明流程:

业务Bean的流程只是refresh函数中关于业务Bean创建的一个item,不过大致流程都是类似的。

IOC 大致流程

spring容器的入口refresh()

  1. obtainFreshBeanFactory()
  1. prepareBeanFactory(beanFactory):
  1. postProcessBeanFactory(beanFactory)

PS:通过上面准备BeanFactory的创建跟准备完成

5. invokeBeanFactoryPostProcessors(beanFactory)

  1. registerBeanPostProcessors(beanFactory)
  1. initMessageSource()
  1. initApplicationEventMulticaster()
  1. onRefresh()
  1. registerListeners()
  1. finishBeanFactoryInitialization(beanFactory)
  1. finishRefresh()

大致流程:刷新下做一些预处理工作,BeanFactory实例化,BeanFactory若干参数赋值,BeanFactory的后置处理器,一些注解Bean的注册操作,国际化,事件发布机制,监听机制,业务Bean的创建。涉及到单例模式,工程模式,适配器模式,以及动态代理等等。

IOC核心流程图

举报

相关推荐

0 条评论