Spring的工廠Bean

Spring的工廠Bean是Spring的一種特殊Bean,這種工廠Bean必須實現FactoryBean接口工具

FactoryBean接口是工廠Bean的標準接口,實現該接口的Bean一般只能做爲工廠Bean使用。當咱們將工廠Bean部署在容器中,並經過getBean()方法來獲取工廠Bean時,容器不會返回FactoryBean實例,而是返回FactoryBean的產品。spa

FactoryBean接口提供以下三個方法:代理

接口 描述
T getObject() 實現該方法負責返回該工廠Bean生成的Java實例
Class<?> getObjectType() 實現該方法返回該工廠Bean生成的Java實例的實現類
boolean isSingleton()

實現該方法表示該工廠Bean生成的Java實例是否爲單例模式接口

實現FactoryBean接口的Bean沒法做爲正常Bean使用。配置FactoryBean與配置普通Bean的定義沒有區別,但當客戶端對該Bean id請求時,容器返回該FactoryBean的產品,而不是返回該FactoryBean自己。事務

當咱們確實須要獲取FactoryBean自己時,能夠在Bean id前加&符號。ci

對於初學者而言,可能沒法體會到工廠Bean的做用。實際上,FactoryBean是Spring中很是有用的一個接口。Spring內置提供了不少實用的工廠Bean,例如TransactionProxyFactoryBean,這個工廠Bean專門用於爲目標Bean建立事務代理。部署

Spring提供的工廠Bean,大多用於生產一批具備某種特徵的Bean實例,工廠Bean是Spring的一個重要工具類。get

相關文章
相關標籤/搜索