springBean

spring小結3:Spring三種實例化Bean的方式

接上回《 spring管理bean原理【山寨版】
       本次主要複習spring實例化bean的方式,spring3共提供了三種實例化bean的方式分別爲:構造器實例化  靜態工廠實例化   動態工廠實例化,下面一一詳解:

公共使用的實體



方式一:構造器實例化
xml配置

  測試



以上就是構造器實例化方式,簡單而方便便,我的比較喜歡使用此法,根據不一樣的參數配置,可達到不一樣的效果的屬性初始化,真心不錯!

方式二:靜態工廠
靜態工廠實例化方法須要另外創建一個工廠類

本工廠類提供2個方法,分別對應帶參,無參構造器!
xml配置

測試

方式三:動態工廠
跟靜態工廠同樣,須要一個工廠類,不一樣的是,動態工廠中的方法爲非靜態的

xml文件

測試:


【注意:】 根據上面的xml配置,細心的朋友會發現靜態工廠xml配置方式也能夠跟動態工廠那樣配置如:



通過測試,發現此法不妥,會報:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personStaticFactoryWithName' defined in class path resource [beans-instance.xml]: No matching factory method found: factory bean 'staticFactory'; factory method 'creatPersonInstace()'. Check that a method with the specified name and arguments exists and that it is non-static.異常,至於爲何會這樣,具體細節目前小飛我還沒有清楚,應該是跟靜態工廠類中靜態方法屬於整個類有關吧!

總結下(抄的,以爲挺好的!拿來分享下)

方式一:經過bean的缺省構造函數建立,當各個bean的業務邏輯相互比較獨立的時候或者和外界關聯較少的時候可使用。spring

方式二:利用靜態factory方法建立,能夠統一管理各個bean的建立,如各個bean在建立以前須要相同的初始化處理,則可用這個factory方法險進行統一的處理等等。框架

方式三:利用實例化factory方法建立,即將factory方法也做爲了業務bean來控制,以爲1可用於集成其餘框架的bean建立管理方法,2可以使bean和factory的角色互換。函數

相關文章
相關標籤/搜索