spring 中配置關鍵字總結

2021-05-21 14:24:31 字數 2214 閱讀 4492

一、scope

標記為擁有singleton scope的物件定義,在spring的ioc容器中只存在乙個例項,所有對該物件的引用將共享這個例項。該例項從容器啟動,並因為第一次被請求而初始化之後,將一直存活到容器退出,也就是說,它與ioc容器"幾乎"擁有相同的"壽命"。

針對宣告為擁有prototype scope的bean定義,容器在接到該型別物件的請求的時候,會每次都重新生成乙個新的物件例項給請求方。雖然這種型別的物件的例項化以及屬性設定等工作都是由容器負責的,但是只要準備完畢,並且物件例項返回給請求方之後,容器就不再擁有當前返回物件的引用,請求方需要自己負責當前返回物件的後繼生命週期的管理工作,包括該物件的銷毀。也就是說,容器每次返回給請求方乙個新的物件例項之後,就任由這個物件例項"自生自滅"了

二、factory-method

spring可以通過工廠方法生成物件,通過在配置檔案中配置,如下

"foo"

class="...foo"

>  

"barinte***ce"

>  

"bar"

/>  

"bar"

class="...staticbarinte***cefactory"

factory-method="getinstance"

/> 

其中staticbarinte***cefactory為工廠類,getinstance為工廠方法,如下

public

classstaticbarinte***cefactory  

}也可以自己定義生成物件的方法,只要實現spring提供的factorybean介面就可以了 ,factorybean是spring容器提供的一種可以擴充套件容器物件例項化邏輯的介面,請不要將其與容器名稱beanfactory相混淆。factorybean,其主語是bean,定語為factory,也就是說,它本身與其他註冊到容器的物件一樣,只是乙個bean而已,只不過,這種型別的bean本身就是生產物件的工廠(factory)。

三、方法注入

通過方法注入可以達到「每次呼叫都讓容器返回新的物件例項」,如下

spring容器提出了一種叫做方法注入(method injection)的方式,可以幫助我們解決上述問題。我們所要做的很簡單,只要讓getnewsbean方法宣告符合規定的格式,並在配置檔案中通知容器,當該方法被呼叫的時候,每次返回指定型別的物件例項即可。方法宣告需要符合的規格定義如下:

<public|protected> [abstract] <return-type>

themethodname(no-arguments); 

也就是說,該方法必須能夠被子類實現或者覆寫,因為容器會為我們要進行方法注入的物件使用cglib動態生成乙個子類實現,從而替代當前物件。既然我們的getnewsbean()方法已經滿足以上方法宣告格式,剩下唯一要做的就是配置該類,配置內容如下所示:

"newsbean"

class="..domain.fxnewsbean"

singleton="false"

>  

"mockpersister"

class="..impl.mocknewspersister"

>  

"getnewsbean"

bean="newsbean"

/>  

通過的name屬性指定需要注入的方法名,bean屬性指定需要注入的物件,當getnewsbean方法被呼叫的時候,容器可以每次返回乙個新的fxnewsbean型別的例項。

四、beanfactoryaware介面

spring框架提供了乙個beanfactoryaware介面,容器在例項化實現了該介面的bean定義的過程中,會自動將容器本身注入該bean。這樣,該bean就持有了它所處的beanfactory的引用。

beanfactory- aware的定義如下**所示:

public

inte***cebeanfactoryaware   

spring註解關鍵字

一 spring註解 1 controller 控制器 2 autowired 按照型別匹配,可以完成對類成員變數,方法及建構函式進行標註,完成自動裝配的工作 autowired required false 在找不到匹配bean時也不報錯 3 qualifier 注釋指定注入bean的名稱,防止衝...

js中in關鍵字總結

1 for.in 對陣列或物件的迴圈 迭代操作 對於陣列迴圈出來的是陣列元素 對於物件迴圈出來的是物件屬性 2 判斷物件是否是陣列 物件的索引 屬性名 格式 變數 in 物件 陣列時是索引,物件時是屬性名 或參考 js中in關鍵字的使用方法 1 for.in 對陣列或物件的迴圈 迭代操作 對於陣列迴...

關鍵字的用法 C 中const關鍵字用法總結

ark2000 看完了c primer的基礎篇,對const還是有點陌生,在這裡小小地總結一下吧。在變數的定義前加上const修飾符即可完成const物件的建立。const int val 5 const變數的值不能改變。val 5 error assignment of read only var...