涉及源碼解析。
一. 簡單依賴注入測試代碼:
二. 對BeanFactory bf=newXmlBeanFactory(new ClassPathResource(“…”))分析。
BeanFactory bf=newXmlBeanFactory(newClassPathResource(“…”));有些過時了。最頂上為核心類XmlBeanFactory繼承自 DefautListableBeanFactory 。
整個BeanFactory類圖:
總的來說邏輯關系為:
1. 将配置檔案封裝為Resource類 Resource resource= newClassPathResource(“…”);
圖示Resource跟ClassPathResource:
資源加載方式:
2. 對配置檔案讀取 即new XmlBeanFactory(resource) 一直到doLoadBeanDefinitions
XmlBeanFactory構造函數中有一個方法this.reader.loadBeanDefitions(resource),其中reader為XmlBeanFactoryReader核心類。類圖:
讀取配置檔案總的邏輯圖:
文字描述為:
考慮到Resource可能有編碼要求故EncodeResource.
3. doLoadBeanDefinitions
總圖:
三個步驟對應三個函數:
三. 對第二句話getbean分析,未完待續...