Spring源码深度解析(第2版)- 时序图及源码(js-sequence-diagrams)
程序员文章站
2024-01-29 12:24:22
...
一、前言
UML时序图,又叫序列图或者顺序图,是一种用来描述对象之间传送消息的时间顺序,是用来表示用例中的行为顺序。
画图工具:http://webchart.ihuhai.cn/index.html(基于js-sequence-diagrams)
重画书中的时序图,加深对源码的理解。
二、时序图
public static void main(String[] args) throws IOException {
//测试
ClassPathResource classPathResource = new ClassPathResource("beans.xml");
BeanFactory bf = new XmlBeanFactory(classPathResource);
MyTestBean myTestBean = (MyTestBean) bf.getBean("myTestBean");
System.out.println(myTestBean.getA());
}
1.XmlBeanFactory 初始化时序图
2.5容器的基础XmlBeanFactory
title:XmlBeanFactory 初始化时序图
Test->ClassPathResource: new ClassPathResource("beans.xml")
ClassPathResource-->Test:classPathResource
Test->XmlBeanFactory:new XmlBeanFactory(classPathResource)
XmlBeanFactory-->XmlBeanFactory: new XmlBeanDefinitionReader(this):reader
XmlBeanFactory->XmlBeanDefinitionReader:this.reader.loadBeanDefinitions(resource)
XmlBeanDefinitionReader-->XmlBeanFactory:loadBeanDefinitions(new EncodedResource(resource)):int
XmlBeanFactory-->Test:bf:BeanFactory
2.loadBeanDefinitions 函数执行时序图
2.5.2加载Bean
title:loadBeanDefinitions 函数执行时序图
XmlBeanFactory->reader:XmlBeanDefinitionReader:loadBeanDefinitions(resource)
reader:XmlBeanDefinitionReader->encodedResource:EncodedResource:new EncodedResource(resource)
encodedResource:EncodedResource-->reader:XmlBeanDefinitionReader:encodedResource:EncodedResource
reader:XmlBeanDefinitionReader-->reader:XmlBeanDefinitionReader:loadBeanDefinitions(encodedResource)
reader:XmlBeanDefinitionReader-->reader:XmlBeanDefinitionReader:通过encodedResource获取inputStream
reader:XmlBeanDefinitionReader-->reader:XmlBeanDefinitionReader:doLoadBeanDefinitions(inputSource, encodedResource.getResource())\nreturn loadBeanDefinitionNum(加载数量):int
reader:XmlBeanDefinitionReader-->XmlBeanFactory:loadBeanDefinitionNum(加载数量)
上一篇: CSS3——浮动和定位