Spring源碼之路-DefaulListableBeanFactory
寫文章的緣由
我對spring源碼也是看過了好多次,但是每次都只是看個大概流程,沒有進行過的任何的詳細總結,導致的結果就是,說沒看過吧,原理懂一點,說看過吧,裏面某些東西的具體實現也很迷糊。所以今天開始從零開始學習spring源碼。
爲什麼源碼之路要從DefaulListableBeanFactory開始
任何強大事物都是由底層的核心擴展而來的,spring也不例外,而支撐起spring的核心就是這個DefaultListableBeanFactory
DefaultListableBeanFactory的類關係結構圖
分解關係 逐個擊破
從上面的圖中我們可以到它的繼承體系還是比較複雜的,如果直接去看這個類會是一頭霧水,這裏我目前的準備從接口入手,由簡單到複雜。初步決定大概順序如下:
- BeanFactory
- SingletonBeanRegistry
- AliasRegistry
- SimpleAliasRegistry
- DefaultSingletonBeanRegistry
- FactoryBeanRegistrySupport
- HierarchicalBeanFactory
- ConfigurableBeanFactory
- AbstractBeanFactory
- AutowireCapableBeanFactory
- AbstractAutowireCapableBeanFactory
- ListableBeanFactory
- ConfigurableListableBeanFactory
- BeanDefinitionRegistry
- DefaultListableBeanFactory