2012-02-14 68 views
1

我有一個基於Spring的Web應用程序。定義了一個bean,它持有一些類MyClass,這個bean也被傳遞給MyEndpointextends AbstractMarshallingPayloadEndpointSpring bean和應用程序生命週期中更改bean參數

MyClass已經在beans中設置了一些布爾參數到true

如果我的申請將programically改變這個參數設置爲false,並在下一個請求將它也設置爲false,否則將包含一個缺省參數豆 - true

回答

0

這取決於bean的scope(如果不指定,它將默認爲singleton)。

  1. 如果它是singleton範圍,沒有在應用程序上下文中的bean的一個實例,每一次你問這個bean的時候,你會得到一個實例。如果您在具有此範圍的請求中更改它,則會保留更改。
  2. 如果它的範圍是prototype,那麼每次詢問應用程序上下文時都會給您一個新的實例(使用相同的參數創建)。如果您在使用此範圍的請求中更改它,那麼當您獲取此對象的另一個實例時,更改將被忽略。

這些是兩個最常用的(至少在我的時間在春季)。還有其他範圍(請求,會話,全局會話),但您應該閱讀documentation on them that Spring provides

0

如果您希望此屬性根據您的應用程序的業務邏輯動態變化不僅要對每一個新的請求重置(否則請求範圍將做魔術)考慮工廠方法(尤其是Lookup Method Injection

相關問題