回覆列表
  • 1 # 使用者2330099431147

    singleton作用域:當把一個Bean定義設定為singleton作用域是,Spring IoC容器中只會存在一個共享的Bean例項,並且所有對Bean的

    請求,只要id與該Bean定義相匹配,則只會返回該Bean的同一例項。值得強調的是singleton作用域是Spring中的預設作用域。

    prototype作用域:prototype作用域的Bean會導致在每次對該Bean請求(將其注入到另一個Bean中,或者以程式的方式呼叫容器的getBean

    ()方法)時都會建立一個新的Bean例項。根據經驗,對有狀態的Bean應使用prototype作用域,而對無狀態的Bean則應該使用singleton作用

    域。

    對於具有prototype作用域的Bean,有一點很重要,即Spring不能對該Bean的整個生命週期負責。具有prototype作用域的Bean建立後交由調

    用者負責銷燬物件回收資源。

    簡單的說:

    singleton 只有一個例項,也即是單例模式。

    prototype訪問一次建立一個例項,相當於new。

    應用場合:

    1.需要回收重要資源(資料庫連線等)的事宜配置為singleton,如果配置為prototype需要應用確保資源正常回收。

    2.有狀態的Bean配置成singleton會引發未知問題,可以考慮配置為prototype。

  • 中秋節和大豐收的關聯?
  • 玻璃水好像是凍了加白酒能解凍嗎?