Springソースコードの詳細分析(第2版)-シーケンス図とソースコード(js-sequence-diagrams)

I.はじめに

シーケンス図またはシーケンス図とも呼ばれるUMLシーケンス図は、オブジェクト間のメッセージの送信を記述するために使用される時系列であり、ユースケースでのアクションのシーケンスを表すために使用されます。

描画ツール:http//webchart.ihuhai.cn/index.htmljs-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.2Beanのロード

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(加载数量)

3.Beanタグの分析と登録シーケンス図

title:bean标签的解析及注册时序图
DefaultBeanDefinitionDocumentReader-->DefaultBeanDefinitionDocumentReader:processBeanDefinition(ele, delegate)
DefaultBeanDefinitionDocumentReader->BeanDefinitionParserDelegate:delegate.parseBeanDefinitionElement(ele)
BeanDefinitionParserDelegate-->DefaultBeanDefinitionDocumentReader:bdHolder:BeanDefinitionHolder
DefaultBeanDefinitionDocumentReader->BeanDefinitionParserDelegate:delegate.decorateBeanDefinitionIfRequired(ele, bdHolder)
BeanDefinitionParserDelegate-->DefaultBeanDefinitionDocumentReader:bdHolder:BeanDefinitionHolder
DefaultBeanDefinitionDocumentReader->BeanDefinitionReaderUtils:BeanDefinitionReaderUtils.registerBeanDefinition(bdHolder, getReaderContext().getRegistry())
DefaultBeanDefinitionDocumentReader->XmlReaderContext:getReaderContext().fireComponentRegistered(new BeanComponentDefinition(bdHolder))

 

 

おすすめ

転載: blog.csdn.net/cs373616511/article/details/107666901