BeanFactory
BeanFactory
Bean 和 BeanFactory 提供了 Spring 最基本的功能,構成了 core container 的主體。
BeanFactory 主要負責讀取 Bean 定義檔。
管理物件的載入、生成、Bean 之間的依賴關係、生命週期等等。
與 FactoryBean 的區別
FactoryBean
是一個介面,且名稱以 Bean 結尾,表示是一個 Bean。
Spring 一般通過 反射機制(即代理) 利用 bean 的 class 屬性指定實現類別並實例化其 Bean。
在某些情況下,實例化 Bean 過程比較複雜,如果按照傳統的方式,則需要在 bean 中提供大量的配置訊息。
Spring 提供了一個 org.springframework.bean.factory.FactoryBean 的工廠模式介面,可以通過實現該介面定制實例化 Bean 的邏輯。
通過 getBean(String BeanName) 獲取到的Bean對象並不是 FactoryBean 的實現類別對象,而是這個實現類別中的 getObject() 方法返回的對象。
要想獲取 FactoryBean 的實現類別,就要 getBean(&BeanName) ,在 BeanName 之前加上 &。
Last updated
Was this helpful?