目錄
2、AutowireCapableBeanFactory接口
6、ConfigurableListableBeanFactory接口
Spring bean工廠接口使用了設計模式中的簡單工廠模式,所有的接口都以Factory結尾。
1、BeanFactory接口
Spring中的BeanFactory是bean工廠的頂級接口,它定義了bean工廠的基本職能。具有方法如下:
2、AutowireCapableBeanFactory接口
AutowireCapableBeanFactory接口是BeanFactory的子接口,它擴展了BeanFactory的功能,使bean工廠對bean具有自動注入的功能。在這個接口中定義了5種bean的依賴注入策略分別是:
- AUTOWIRE_NO:不自動注入
- AUTOWIRE_BY_NAME:按照bean屬性的名稱注入
- AUTOWIRE_BY_TYPE:按照bean屬性的類型注入
- AUTOWIRE_CONSTRUCTOR:通過bean的構造器注入
- AUTOWIRE_AUTODETECT:自動偵測注入(已經廢棄)
3、ListableBeanFactory接口
ListableBeanFactory作爲BeanFactory的子接口,擴展了其功能,可以枚舉bean工廠中所有的bean實例。預加載所有bean定義的bean工廠(例如基於xml配置的工廠)可以實現這個接口。(看下圖,嘻嘻)
4、HierarchicalBeanFactory接口
HierarchicalBeanFactory作爲BeanFactory的子接口,擴展了BeanFactory的功能,使bean工廠具有了父子層次關係。
getParentBeanFactory()方法用於獲取父bean工廠。
containsLocalBean(String)方法用於判斷該bean工廠中是否存在指定的bean,不會去父bean工廠中查找。
5、ConfigurableBeanFactory接口
ConfigurableBeanFactory可配置的bean工廠,繼承了HierarchicalBeanFactory接口,使bean工廠具有可配置的功能。具有的方法如下:
6、ConfigurableListableBeanFactory接口
ConfigurableListableBeanFactory接口同時繼承了ListableBeanFactory、AutowireCapableBeanFactory和ConfigurableBeanFactory,這意味着它同時具有這三個接口的功能,並在此基礎上增加了額外的功能。
7、Spring bean工廠接口之間的繼承關係
在上邊簡單介紹了各個接口,下面的UML類圖清楚的表示了它們之間的關係。
最後,感謝IDEA這款強大的開發工具,節省了我畫UML圖的時間。