1.1spring啟動原始碼分析(ClassPathXmlApplicationContext)
阿新 • • 發佈:2018-12-21
spring啟動原始碼分析(ClassPathXmlApplicationContext)
Applicantioncontext uml圖
- ClassPathXmlApplicationContext xml 配置檔案專案中的路徑
- FileSystemXmlApplicationContext xml 配置檔案在系統中的路徑
- AnnotationConfigApplicationContext 註解類啟動方式
BeanFactory uml圖
- ApplicationContext 繼承了 ListableBeanFactory,這個 Listable
的意思就是,通過這個介面,我們可以獲取多個 Bean,大家看原始碼會發現,最頂層 BeanFactory 介面的方法都是獲取單個 Bean
的。 - ApplicationContext 繼承了 HierarchicalBeanFactory,Hierarchical
單詞本身已經能說明問題了,也就是說我們可以在應用中起多個 BeanFactory,然後可以將各個 BeanFactory
設定為父子關係。 - AutowireCapableBeanFactory 這個名字中的 Autowire 大家都非常熟悉,它就是用來自動裝配 Bean用的,但是上圖ApplicationContext 並沒有繼承它,不過不用擔心,不使用繼承,不代不可以使用組合,如果你看到ApplicationContext 介面定義中的最後一個方法 getAutowireCapableBeanFactory()
- ConfigurableListableBeanFactory 也是一個特殊的介面,看圖,特殊之處在於它繼承了第二層所有的三個介面,而ApplicationContext 沒有。這點之後會用到。