1. 程式人生 > >1.1spring啟動原始碼分析(ClassPathXmlApplicationContext)

1.1spring啟動原始碼分析(ClassPathXmlApplicationContext)

spring啟動原始碼分析(ClassPathXmlApplicationContext)

Applicantioncontext uml圖

在這裡插入圖片描述

  1. ClassPathXmlApplicationContext xml 配置檔案專案中的路徑
  2. FileSystemXmlApplicationContext xml 配置檔案在系統中的路徑
  3. AnnotationConfigApplicationContext 註解類啟動方式

BeanFactory uml圖

在這裡插入圖片描述

  1. ApplicationContext 繼承了 ListableBeanFactory,這個 Listable
    的意思就是,通過這個介面,我們可以獲取多個 Bean,大家看原始碼會發現,最頂層 BeanFactory 介面的方法都是獲取單個 Bean
    的。
  2. ApplicationContext 繼承了 HierarchicalBeanFactory,Hierarchical
    單詞本身已經能說明問題了,也就是說我們可以在應用中起多個 BeanFactory,然後可以將各個 BeanFactory
    設定為父子關係。
  3. AutowireCapableBeanFactory 這個名字中的 Autowire 大家都非常熟悉,它就是用來自動裝配 Bean用的,但是上圖ApplicationContext 並沒有繼承它,不過不用擔心,不使用繼承,不代不可以使用組合,如果你看到ApplicationContext 介面定義中的最後一個方法 getAutowireCapableBeanFactory()
  4. ConfigurableListableBeanFactory 也是一個特殊的介面,看圖,特殊之處在於它繼承了第二層所有的三個介面,而ApplicationContext 沒有。這點之後會用到。