一提到工廠,我們先來回憶前面學習過的工廠方法和抽象工廠模式:
抽象工廠:針對產品系列,可以在謀一系列的產品上進行擴充套件。缺點是如果產生產品新種,改動就會很多。
spring工廠:可以在產品系列方面既能擴充套件,又能確定產品品種。下面是spring的例項:
1.首先定義乙個介面兩個類:
public
class
carimplements
moveable
}public
class
train
implements
moveable
}public
inte***ce
moveable
<?xml version="1.0" encoding="utf-8"?>
id="v"
class="com.tgbstd.spring.factory.car">
bean>
beans>
3.測試類:
public
static
void
main(string args) throws exception
}
spring利用本身讀取xml配置檔案,並且實現了beanfactory介面。我們只需要在客戶端傳入配置檔名,傳入配置檔案的id,就能根據id找到相應的class產生的物件,並將物件作為乙個bean反饋回來。
上面是封裝好的乙個spring,那麼我們如何來模擬spring的原理呢?
spring模擬:定義乙個beanfactory,在這個裡面有自己的實現,最常見的實現classpathxml ,從這裡面讀xml,把讀到的資訊都裝在乙個map裡面,當你要的時候再拿出來。
a.定義beanfactory介面和getbean方法
public
inte***ce beanfactory
public
class
implements
beanfactory
}@override
//呼叫getbean將拿到的資訊返回給客戶
public object getbean(string id)
}
c.測試類
public
class test
}
d.結果:
上面簡單的介紹了spring建立bean工廠的原理。其實bean主要是通過自己定義乙個beanfactory工廠的實現,通過建構函式傳入初始值,讀取xml配置檔案資訊。並且將讀取到的id作為key值,讀取到的物件作為value值,存入到map容器中。當客戶端需要獲取時,只要傳入id,就能從容器中讀取出來。
理解Spring的Bean工廠
一 提到工廠,我們先來回顧前面學習過的工廠方法和抽象工廠模式 工廠方法 針對產品維度,能夠產生新的產品,也能夠產生新的產品工廠,既能夠擴充套件產品維度。可是假設我們想在普通工廠上生產產品系列,就會特別麻煩 假設產生 你就得產生 假設產生 mushroom 就得產生 mushroomfactory.這...
Spring中的工廠bean
spring 有兩種型別 bean,一種普通 bean,另外一種工廠 bean factorybean 建立類,讓這個類作為工廠 bean,實現介面 factorybean public class myfactorybean implements factorybean override publ...
spring核心 bean工廠的裝配 1
1.bean factory getstart初時bean工廠 2.bean基礎定義 3.使用建構函式建立bean 4.使用靜態工廠方法建立bean 5.使用非靜態工廠方法建立bean 6.bean的識別符號 7.何時使用singleton 8.設定bean的屬性和協作者 9.bean建構函式選擇決...