spring DefaultListableBeanFactory 概述


       
     有人說,DefaultListableBeanFactory是spring的發動機,其實重要性不為過。TA的整體類圖如下:
 
 
這里先概述接口部分:
 
BeanFactory是Spring的最根的接口,類的工廠接口。HierarchicalBeanFactory接口是在繼承BeanFactory的基礎上,實現BeanFactory的父子關系。
 
AutowireCapableBeanFactory接口是在繼承BeanFactory的基礎上,實現Bean的自動裝配功能
 
ListableBeanFactory接口是在繼承BeanFactory的基礎上,實現Bean的list集合操作功能
 
ConfigurableBeanFactory接口是在繼承HierarchicalBeanFactory的基礎上,實現BeanFactory的全部配置管理功能, SingletonBeanRegistry是單例bean的注冊接口
 
ConfigurableListableBeanFactory接口是繼承AutowireCapableBeanFactory,ListableBeanFactory,ConfigurableBeanFactory三個接口的一個綜合接口
 
 
在概述類部分:
 
AliasRegistry接口是別名注冊接口,SimpleAliasRegistry類是簡單的實現別名注冊接口的類。
 
DefaultSingletonBeanRegistry是默認的實現SingletonBeanRegistry接口的類,同時,繼承類SimpleAliasRegistry 。
FactoryBeanRegistrySupport是實現FactoryBean注冊的功能實現。繼承類DefaultSingletonBeanRegistry 。
AbstractBeanFactory是部分實現接口ConfigurableBeanFactory,並繼承類FactoryBeanRegistrySupport 。
 
AbstractAutowireCapableBeanFactory是實現接口AutowireCapableBeanFactory,並繼承類 AbstractBeanFactory 。
 
 
最后,DefaultListableBeanFactory實現接口 ConfigurableListableBeanFactory、BeanDefinitionRegistry(bean定義的注冊接口), 並繼承AbstractAutowireCapableBeanFactory,實現全部類管理的功能。
 
DefaultListableBeanFactory其實要實現的功能就是以list集合的方式操作bean,為什么要拆成這么多的類和接口呢。這里面可能基於幾點考慮。
1 功能的不同維度,分不同的接口,方便以后的維護和其他人的閱讀。如:AutowireCapableBeanFactory、ListableBeanFactory、HierarchicalBeanFactory等
2 不同接口的實現,分布在不同的之類里,方便以后不同接口多種實現的擴展
3 從整個類圖的分布,可以看出spring在這塊是面向接口編程,后面類的實現,他們認為只是接口功能實現的一種,隨時可以拓展成多種實現
 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

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



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