spring-Ioc时序图
2024-05-25 11:18:44 4 举报
springIOC从加载到实例化。AI生成:spring-Ioc时序图描述了Spring框架的核心功能之一:依赖注入(DI)的控制流。这张图展示了当Spring应用程序启动时,容器如何创建、管理和连接对象之间的依赖关系。图的中心是一个名为ApplicationContext的Spring容器,它管理着许多不同的Bean。这些Bean是通过XML或注释配置来定义的,表示为圆角矩形。箭头表示Bean之间的依赖关系,当容器创建Bean时,它会自动注入这些依赖。总的来说,spring-Ioc时序图提供了一个关于Spring框架如何工作的直观理解,对于理解和使用Spring框架进行开发非常有帮助。
作者其他创作
大纲/内容
loadBeanDefinitions(reader)
setConfigLocations
addSingleton,添加一级缓存
加载
registerBeanDefinition
loadBeanDefinitions(resource)
bean
DefaultListableBeanFactory
AbstractApplicationContext
initializetionBean
注册监听器到内部的广播器中
doLoadBeanDefinitions
cerateBean
onRefresh
doRegisterBeanDefinitions
初始化国际化资源,messageSource,如果没有就用默认的
BeanDefinitionReaderUtils
createBeanInstance
finishBeanFactoryInitialization(beanFactory)
singletonObject
refresh
invokeBeanFactoryPostProcessors
initMessageSource
registerBeanDefinitions
AbstractAutowireCapableBeanFactory
refreshBeanFactory
定位
doGetBean
initApplicationEventMulticaster
registerListeners
preInstantiateSingletons
createDelegate
AbstractRefreshableConfigApplicationContext
ClassPathXmlApplicationContext
loadBeanDefinitions(beanFactory)
注册
processBeanDefinition
具体调用的是DefaultListableBeanfactory的此方法来实例化
拿到所有BeanName,循环调用getBean
sharedInstance
AbstractXmlApplicationContext
* @see BeanNameAware * @see BeanClassLoaderAware * @see BeanFactoryAware * @see #applyBeanPostProcessorsBeforeInitialization * @see #invokeInitMethods * @see #applyBeanPostProcessorsAfterInitialization
prepareBeanFactory
postProcessBeanFactory
实例化剩余的非延迟加载的bean
createBeanFactory
obtainFreshBeanFactory
getBean
SimpleInstantiationStrategy
执行BeanFactoryPostProcessor,意思是BeanFactory初始化后,执行的后置处理,比如在Bean的定义中,有个属性的值为${name},那么就会执行相应的处理器,把占位符替换为真实的值
* 此类的核心方法:创建 bean 实例、 * 填充 bean 实例、应用后处理器等* @see #doCreateBean
没有引用指向
AbstractBeanDefinitionReader
创建Bean
DefaultBeanDefinitionDocumentReader
loadBeanDefinitions
注册了两个BeanPostProcessor以及3个环境Bean
instantiate
registerBeanPostProcessors
模版,给子类实现,用来初始化特殊的Bean
初始化事件广播器,如果没有就用默认的
构造方法
this.beanPostProcessors.add(beanPostProcessor);---就是给BeanFactory中的list添加Bean创建拦截器,P:BeanPostProcessor也可以被称为Bean创建拦截器
AbstractRefreshableApplicationContext
getSingleton
实例化
空方法,允许子类重写,比如在web环境
DefaultSingletonBeanRegistry
XmlBeanDefinitionReader
doCreateBean
AbstractBeanFactory
parseBeanDefinitions
0 条评论
下一页