首页 > 其他分享 >spring对于ioc容器创建和bean的解析

spring对于ioc容器创建和bean的解析

时间:2022-12-18 15:56:05浏览次数:44  
标签:xml 5.3 spring springframework bean beans org ioc

 

根据树看了一下源码

 

头都大了

类的继承图

 

 

 

 

C:\Users\linjunwei\.m2\repository\org\springframework\spring-beans\5.3.8\spring-beans-5.3.8-sources.jar!\org\springframework\beans\factory\xml\BeanDefinitionParserDelegate.java

 

这个类解析bean属性

 

FileSystemXmlApplicationContext    这个类  进去里面的refresh 创建ioc容器

下面这个类的refresh方法

C:\Users\linjunwei\.m2\repository\org\springframework\spring-context\5.3.8\spring-context-5.3.8-sources.jar!\org\springframework\context\support\AbstractApplicationContext.java

 

再找到C:\Users\linjunwei\.m2\repository\org\springframework\spring-context\5.3.8\spring-context-5.3.8-sources.jar!\org\springframework\context\support\AbstractRefreshableApplicationContext.java


refreshBeanFactory方法

上面一套操作创建ioc容器

看看怎么载入bean的

C:\Users\linjunwei\.m2\repository\org\springframework\spring-context\5.3.8\spring-context-5.3.8-sources.jar!\org\springframework\context\support\AbstractXmlApplicationContext.java

调用
XmlBeanDefinitionReader  的loadbeandefinitions方法

C:\Users\linjunwei\.m2\repository\org\springframework\spring-beans\5.3.8\spring-beans-5.3.8-sources.jar!\org\springframework\beans\factory\xml\XmlBeanDefinitionReader.java

 

看看这个类

贴一段源码方法,具体也不懂,不过看报错信息大概知道是解析xml文件的

 

 

 

 

里面的  doLoadBeanDefinitions方法解析文件中定义的bean


书上说xml的解析分两部分 document 对xml文件进行通用解析

documentReader对xml中定义的bean使用spring规则进行解析


C:\Users\linjunwei\.m2\repository\org\springframework\spring-beans\5.3.8\spring-beans-5.3.8-sources.jar!\org\springframework\beans\factory\xml\DefaultBeanDefinitionDocumentReader.java

这个类的  processBeanDefinition 方法调用 xml解析bena的方法想容器注册bean

 

 

C:\Users\linjunwei\.m2\repository\org\springframework\spring-beans\5.3.8\spring-beans-5.3.8-sources.jar!\org\springframework\beans\factory\xml\BeanDefinitionParserDelegate.java

这个类解析bean  属性  对象  什么的

 

根据不同类型调用不同方法进行解析

 

 

 

 

乱七八糟的  记录一下,证明我来过

 

标签:xml,5.3,spring,springframework,bean,beans,org,ioc
From: https://www.cnblogs.com/bawanglong168/p/16990466.html

相关文章