ClassPathXmlApplicationContext的refresh() 方法負責完成了整個容器的初始化


ClassPathXmlApplicationContext的refresh() 方法負責完成了整個容器的初始化。

為什么叫refresh?也就是說其實是刷新的意思,該IOC容器里面維護了一個單例的BeanFactory,如果bean的配置有修改,也可以直接調用refresh方法,它將銷毀之前的BeanFactory,重新創建一個BeanFactory。所以叫refresh也是能理解的。

以下是Refresh的基本步驟:
1.把配置xml文件轉換成resource。resource的轉換是先通過ResourcePatternResolver來解析可識別格式的配置文件的路徑
(如"classpath*:"等),如果沒有指定格式,默認會按照類路徑的資源來處理。 
2.利用XmlBeanDefinitionReader完成對xml的解析,將xml Resource里定義的bean對象轉換成統一的BeanDefinition。
3.將BeanDefinition注冊到BeanFactory,完成對BeanFactory的初始化。BeanFactory里將會維護一個BeanDefinition的Map。

 

 

http://www.iteye.com/topic/1113459






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM