許久沒記錄筆記了,這回來重新熟悉一下 Spring 中 FactoryBean 的使用,顧名思義,它是用來獲得相應 Bean 的工廠的。它與另一個 Spring 中的接口 BeanFactory 的作用不一樣的,不能多說了。FactoryBean 和 BeanFactory 都是在 org.springframework.beans.factory
包中,誰能一看類名搞清楚它們的差別?
- FactoryBean: 用於創建某個特定的 Spring bean 的工廠類
- BeanFactory: Spring 上下文的最頂層接口,如
ApplicationContext
就繼承了該接口,它可稱之爲所有 Spring bean 的工廠
這兒說的是第一個 FactoryBean, 它的接口聲明是
1 2 3 4 5 |
public interface FactoryBean<T> { T getObject() throws Exception; Class<?> getObjectType(); boolean isSingleton(); } |
它最終的效果是,Spring 容器中註冊一個名稱爲 abcFactoryBean 的 AbcFactoryBean
實例,通後名稱 abcFactoryBean
獲得的實際上是相應 AbcFactoryBean.getObject()
返回的對象,類型爲 getObjectType()
, isSingleton()
是否是單例。 閱讀全文 >>