理解Spring的Bean工廠

2021-07-26 08:21:51 字數 1426 閱讀 7077

一提到工廠,我們先來回憶前面學習過的工廠方法和抽象工廠模式:

抽象工廠:針對產品系列,可以在謀一系列的產品上進行擴充套件。缺點是如果產生產品新種,改動就會很多。

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建構函式選擇決...