天天看點

【Spring】使用工廠方法配置Bean使用工廠方法配置Bean

使用工廠方法配置Bean

  • 使用工廠方法配置Bean
    • 靜态工廠
    • 執行個體工廠

之前介紹過通過XML配置Bean :Bean的配置,當時是使用Bean的全類名(通過反射實作)來進行配置的,還可以通過工廠方法來配置Bean。

靜态工廠

工廠就是我們把Bean可以實作放在工廠中,然後需要的時候再去取。靜态工廠就是直接調用一個靜态方法就可以傳回Bean的執行個體。接下來用一個例子幫助了解,首先定義一個Person類:

【Spring】使用工廠方法配置Bean使用工廠方法配置Bean

然後定義一個靜态工廠,在static塊中加入我們的Bean執行個體,再添加一個靜态方法來獲得我們的Bean:

【Spring】使用工廠方法配置Bean使用工廠方法配置Bean

接下來修改配置檔案,需要在配置檔案中聲明一個Bean,class屬性指向我們剛剛建立的工廠Bean,factory-method指向工廠方法的名字,因為需要參數,是以還要使用constructor-arg來設定要傳入的參數。

【Spring】使用工廠方法配置Bean使用工廠方法配置Bean

接着建立一個測試類運作一下:

【Spring】使用工廠方法配置Bean使用工廠方法配置Bean

看到我們成功的獲得了Bean的執行個體。

執行個體工廠

執行個體工廠方法就是通過執行個體方法獲得Bean而不是靜态方法,也就是說,需要獲得Bean的時候,首先要new一個執行個體工廠的執行個體。Bean還是使用我們上面的Person,接着建立一個執行個體工廠,方法和屬性和靜态方法類似,就是都變成了執行個體方法,還有靜态工廠中static的部分,寫在了執行個體工廠中的構造器部分。

【Spring】使用工廠方法配置Bean使用工廠方法配置Bean

接着去配置檔案中聲明執行個體工廠的Bean,然後才可以使用執行個體工廠去配置Bean。factory-bean指向的是我們剛剛配置的執行個體工廠的Bean,factory-method和factory-arg和靜态工廠的含義相同。

【Spring】使用工廠方法配置Bean使用工廠方法配置Bean

在測試類中添加獲得老李的語句,然後運作:

【Spring】使用工廠方法配置Bean使用工廠方法配置Bean

沒有問題,成功的獲得了老李。