日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring中Xml屬性配置的解析全過程記錄

瀏覽:24日期:2023-07-19 15:36:55
1 工程概述

Spring中Xml屬性配置的解析全過程記錄

1.1 pom文件

<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <spring.version>5.2.8.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> </dependency> <!-- 日志相關依賴 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.10</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.2</version> </dependency> </dependencies>1.2 applicationContext.xml

<beans xmlns='http://www.springframework.org/schema/beans' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:context='http://www.springframework.org/schema/context' xsi:schemaLocation='http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd' default-lazy-init='false'> <bean /> <context:component-scan base-package='com.rosh.service'/></beans>1.3 StudentBean

@Data@AllArgsConstructor@NoArgsConstructor@ToStringpublic class StudentBean { private String name = 'rosh'; private String school = '杜橋中學'; private String hobby = '籃球';}1.4 RoshTest

public class RoshTest { @Test public void mainTest(){ ClassPathXmlApplicationContext applicationContext=new ClassPathXmlApplicationContext('applicationContext.xml'); StudentBean student = applicationContext.getBean(StudentBean.class); System.out.println(student.toString()); }}1.5 運行結果

Spring中Xml屬性配置的解析全過程記錄

2 流程解析2.1 源碼Debug

描述:調用構造方法中的refresh方法

Spring中Xml屬性配置的解析全過程記錄

描述:調用AbstractApplicationContext refresh()方法進行xml解析

Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄

重點: 創建XML對象的解析器

Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄

重點: 用xml文件解析器把xml文件轉換成Reource對象

Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄

重點: Resource對象轉Document對象

Spring中Xml屬性配置的解析全過程記錄

**重點:**創建Document解析器

Spring中Xml屬性配置的解析全過程記錄

Spring中Xml屬性配置的解析全過程記錄

總結: DefaultBeanDefinitionDocumentReader(Document解析器)解析xml文件

Spring中Xml屬性配置的解析全過程記錄

2.2 總結流程

大概步驟:

(1) 構造。

(2) 刷新工廠。

(3) 創建xml對象解析器。

(4) 將xml解析成Resource對象。

(5) Resource轉Document。

(6) 創建Document對象解析器。

(7) 解析Document對象。

詳細步驟:

1 ClassPathXmlApplicationContext調用構造方法。2 AbstractApplicationContext: (1) 調用refresh()方法。 (2) 調用obtainFreshBeanFactory()方法。3 AbstractRefreshableApplicationContext調用refreshBeanFactory() 方法。4 AbstractXmlApplicationContext:(1) loadBeanDefinitions(DefaultListableBeanFactory beanFactory)方法。創建XML解析器。 (2) 調用loadBeanDefinitions(XmlBeanDefinitionReader reader)方法。5 AbstractBeanDefinitionReader:(1) loadBeanDefinitions(String... locations)方法。 (2) loadBeanDefinitions(String location)方法。(3) loadBeanDefinitions(String location, @Nullable Set<Resource> actualResources)方法,將XML解析成Resource對象。(4) loadBeanDefinitions(Resource... resources)方法。6 XmlBeanDefinitionReader:(1) loadBeanDefinitions(Resource resource) 方法。(2) loadBeanDefinitions(EncodedResource encodedResource) 方法。(3) doLoadBeanDefinitions(InputSource inputSource, Resource resource)方法。(4)registerBeanDefinitions(Document doc, Resource resource)方法。創建Document解析器。7 DefaultBeanDefinitionDocumentReader: (1) registerBeanDefinitions(Document doc, XmlReaderContext readerContext)方法。 (2) doRegisterBeanDefinitions(Element root)方法。 (3) parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) 方法解析默認標簽、自定義標簽。3 解析Bean標簽

Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄

4 自定義標簽解析 4.1 步驟

1. 獲取自定義標簽的 namespace 命令空間,例如:http://www.springframework.org/schema/context2. 根據命令空間獲取 NamespaceHandler 對象通過 SPI 機制獲取 spring 中所有 jar 包里面的 'META-INF/spring.handlers'文件,并且建立映射關系3. 反射獲取 NamespaceHandler 實例4. 調用對應標簽如 ContextNameHandler 標簽的 init()方法5. 調用 handler.parse()方法完成解析

4.2 流程解析

1 根據自定義標簽尋找相應的uri

Spring中Xml屬性配置的解析全過程記錄

2 加載spring中全部MET-INF/spring.handlers

Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄

3 根據applicationContext.xml 找對應的Hadnler

Spring中Xml屬性配置的解析全過程記錄

4.3 Debug

Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄

Spring中Xml屬性配置的解析全過程記錄

Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄Spring中Xml屬性配置的解析全過程記錄

總結

到此這篇關于Spring中Xml屬性配置解析的文章就介紹到這了,更多相關Spring Xml屬性配置解析內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩手机在线| 亚洲一区日韩在线| 日韩精品视频在线看| 免费日本视频一区| 蜜臀av亚洲一区中文字幕| 三级欧美在线一区| 亚洲欧洲日韩精品在线| 天堂av一区| 久久国产乱子精品免费女| 国产精品久久久久久久久免费高清| 丝袜美腿成人在线| 视频精品一区二区| 三级久久三级久久久| 日韩国产在线观看| 国产日韩欧美一区| 精品视频免费| 成人久久久久| 一本色道精品久久一区二区三区| 免费在线观看日韩欧美| 亚洲精品在线二区| 国产乱子精品一区二区在线观看| 国产精品白丝一区二区三区| 精品三级在线| 91精品啪在线观看国产18| 亚洲男女av一区二区| 欧美久久精品一级c片| 亚洲制服一区| 国产精品久久久久9999高清| 色偷偷偷在线视频播放| 影音先锋国产精品| 日韩av一二三| 日韩av有码| 尤物在线精品| 日韩精品一区二区三区免费视频| 国产美女久久| www.九色在线| 久久亚洲风情| 久久爱www成人| 日本精品影院| 亚洲日产国产精品| 国产精品对白久久久久粗| 日本少妇一区| 亚洲视频国产| 国产成人黄色| 奶水喷射视频一区| 麻豆视频一区| 国产中文一区| 最近国产精品视频| 国产伊人久久| 视频在线在亚洲| 国产精品jk白丝蜜臀av小说| 久久久久国产精品一区三寸| 在线一区二区三区视频| 精品中文在线| 在线亚洲国产精品网站| 日本国产欧美| 亚洲伦乱视频| 日韩精品国产欧美| 日韩电影二区| 亚洲精品在线a| 欧美二三四区| 亚洲a级精品| av综合电影网站| 日本一区二区三区中文字幕| 另类中文字幕国产精品| 亚洲免费毛片| 久久久久.com| 捆绑调教美女网站视频一区| 久久国产电影| 国产精品美女午夜爽爽| 久久麻豆精品| 国产精品久久免费视频| 亚洲精品网址| 日本久久综合| 91福利精品在线观看| 亚洲韩日在线| 捆绑调教美女网站视频一区| 日韩在线一二三区| 久久久噜噜噜| 丁香婷婷久久| 日本欧美韩国一区三区| 国产精品日韩| 成人日韩在线观看| 久久伊人亚洲| 日韩精品欧美精品| 欧洲激情综合| 日韩久久视频| 国产精品久久久免费| 中文字幕成人| jiujiure精品视频播放| 丝袜诱惑一区二区| 久久久国产精品网站| 91亚洲精品视频在线观看| 免费精品视频| 五月精品视频| 欧美日韩一区二区三区视频播放| 久久97视频| 欧美一区免费| 亚洲我射av| 精品在线99| 精品国产精品国产偷麻豆| 日韩黄色在线观看| 亚洲综合福利| 久久亚洲色图| 欧美日韩四区| av亚洲免费| 亚洲国内欧美| 亚洲天堂黄色| 99久久夜色精品国产亚洲1000部| 国产精品成久久久久| 精品在线网站观看| 国产日产一区| 亚洲精品福利| 亚洲91网站| 亚洲精品女人| 亚洲一区免费| 中文亚洲欧美| 欧美午夜不卡| 欧美特黄视频| 91久久在线| 亚洲欧美日本日韩| 视频一区视频二区中文字幕| 亚洲成人二区| 天堂av在线| 最近高清中文在线字幕在线观看1| 精品国产亚洲一区二区三区| 亚洲综合五月| 日本大胆欧美人术艺术动态| 亚洲精品黄色| 日本aⅴ亚洲精品中文乱码| 在线精品视频在线观看高清| 天堂日韩电影| 蜜臀av免费一区二区三区| 国产99久久久国产精品成人免费| 成人日韩在线| 欧美亚洲在线日韩| 9国产精品视频| 亚洲精品电影| 蜜臀久久99精品久久久久宅男| 亚洲午夜免费| 国产欧美啪啪| 97精品国产一区二区三区| 国产精品国产三级国产在线观看| 免费看av不卡| 久久精品国语| 国产夫妻在线| 亚洲网站视频| 中文字幕视频精品一区二区三区| 日韩欧美四区| 久久av影视| 欧美成人精品三级网站| 免费黄色成人| 亚洲一区欧美| 91麻豆精品激情在线观看最新 | 日韩福利视频导航| 日韩av中文字幕一区| 国产精品777777在线播放 | 久久中文字幕av| 亚洲欧美日韩视频二区| 亚洲一级大片| 老鸭窝一区二区久久精品| 日韩在线欧美| 伊人久久亚洲热| 日韩国产在线观看| 福利一区二区| 红桃视频欧美| 欧美日韩一视频区二区| 在线人成日本视频| 国产精品毛片| 国产精品久久久久久久免费软件| 国产精品大片免费观看| 成人免费电影网址| 视频一区中文字幕精品| 精品99在线| 在线亚洲观看| 国产精品xxx在线观看| 色一区二区三区| 亚洲视频国产| 毛片在线网站| 男人操女人的视频在线观看欧美| 国产精品久久久久久模特| 欧美亚洲激情| 国产伦理久久久久久妇女| 久久精品在线| 日韩av三区| 涩涩av在线| 欧美亚洲网站| 香蕉国产精品| 精品国产亚洲一区二区三区在线| 日韩一级精品| 另类欧美日韩国产在线| 久久亚洲国产精品一区二区| 国产一区二区三区不卡av| 蜜臀a∨国产成人精品| 色偷偷偷在线视频播放| 日韩av二区在线播放| 免费视频亚洲| 国产一区精品福利| 日韩中文av| 国产99久久|