BeanFactory 是 Spring IoC 容器的核心介面,它定義了 IoC 容器的基本功能,如管理應用程式元件之間的依賴關係。BeanFactory 負責例項化、配置和組裝 bean。它提供了獲取 bean 例項的方法,通常透過 bean 的名稱或型別來獲取。BeanFactory 是 Spring IoC 容器最底層的實現,提供了最基礎的功能,而不涉及到更多的生命週期管理或 AOP 代理的建立等高階特性。XmlBeanFactory 和 DefaultListableBeanFactory 是 BeanFactory 介面的常見實現。
BeanFactory
FactoryBean 是 Spring 框架中的一個特殊型別的 bean,它允許你定義建立物件的複雜邏輯,並在 Spring IoC 容器中註冊這個邏輯作為一個 bean。FactoryBean 不是用於管理 bean 的容器,而是用於建立特定型別的 bean 例項的工廠。
當你向 Spring IoC 容器請求一個 FactoryBean 型別的 bean 時,容器實際上會呼叫 FactoryBean 的 getObject() 方法來獲取真正的物件例項,而不是返回 FactoryBean 本身。同時,FactoryBean 的 getObjectType() 方法用於指定由 FactoryBean 建立的物件的型別,而 isSingleton() 方法則用於控制這個物件是否是單例的。