在預設的情況下,spring 上下文的所有 bean 都是作為單例存在的。 單例會保持一些狀態,物件會被汙染,有時重用時不安全的。
作用域:
單例(singleton):整個應用中,只建立 bean 的乙個例項
原型(prototype):每次注入或通過 spring 上下文獲取時都建立新的例項
會話(session):在 web 應用中,為每個會話建立乙個 bean 例項
請求(request):在 web 應用中,為每個請求建立乙個 bean 例項
使用 @scop 組合 @bean 和 @component(包括自註解,被 @component 註解的註解)。
在 xml 中,bean 標籤有對應的 socp 屬性。
就購物車功能而言,會話作用域最為合適。
scope_session 對於一次會話會建立新的例項。 proxymode 解決了將會話或請求作用域 bean 注入到單例 bean 中的問題。
實際注入時會注入目標 bean 的乙個**,使用時**會對其進行懶解析並將呼叫委託給會話作用域內正真的 bean。
scopedproxymode.inte***ce 指明目標類是乙個介面,注入時需使用 jdk 動態** scopedproxymode.target_class 指明目標類是類,注入時使用 cglib **
xml 中也提供了相應屬性:bean 元素的 scop 屬性,以及 bean 元素下的子元素 aop:scoped-proxy 。 通過 proxy-target-class 屬性指明目標 bean 是介面還是類。
Spring實戰 6 內部Bean
本篇文章講解了spring的通過內部bean設定bean的屬性。類似內部類,內部bean與普通的bean關聯不同的是 1 普通的bean,在其他的bean例項引用時,都引用同乙個例項。2 內部bean,每次引用時都是新建立的例項。鑑於上述的場景,內部bean是乙個很常用的程式設計模式。下面先通過前文...
spring實戰 條件裝配bean
在做大型專案時,我們的系統會有多個執行環境,如開發人員自己的本地環境dev,測試人員的測試環境sit,上線前的預生產環境pre,線上環境prd 在不同環境中我們可能需要不同的配置,如資料庫配置,mq配置等,在不同的環境都有相應的不同的配置,這時候我們需要根據不同的環境來建立不同的配置 強大的spri...
Spring實戰 6 內部Bean
本篇文章講解了spring的通過內部bean設定bean的屬性。類似內部類,內部bean與普通的bean關聯不同的是 1 普通的bean,在其他的bean例項引用時,都引用同乙個例項。2 內部bean,每次引用時都是新建立的例項。鑑於上述的場景,內部bean是乙個很常用的程式設計模式。下面先通過前文...