日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring配置文件中bean标签的scope属性

發布時間:2023/12/9 javascript 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring配置文件中bean标签的scope属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:https://fj-sh-chz.iteye.com/blog/1775149

singleton? (默認屬性)?

Spring將Bean放入Spring IOC容器的緩存池中,并將Bean引用返回給調用者,spring IOC繼續對這些Bean進行后續的生命管理。BeanFactory只管理一個共享的實例。所有對這個特定bean的實例請求,都導致返回這個唯一 bean實例的引用。?

即每次拿到的對象都是引用的同一個地址的對象。當一個bean被標識為singleton時候,spring的IOC容器中只會存在一個該bean。?


2.prototype?

Spring將Bean返回給調用者,調用者負責Bean后續生命的管理,Spring不再管理這些Bean的生命周期。?
每次對這個bean的實例請求都會導致一個新的實例的創建。當用戶需要不受其他用戶對象影響的對象或有類似的需求時,這是一個較理想的解決辦法。?


即每次拿到的對象都是引用的不同地址的對象。相當于一個new的操作。清除prototype作用域的對象并釋放任何prototype bean所持有的昂貴資源,都是客戶端代碼的職責?


以下的3種scope都使用的較少,類似于J2EE里面的request和session。在使用SpringMVC是可能會用到。?


3.request?

?request表示該針對每一次HTTP請求都會產生一個新的bean,同時該bean僅在當前HTTP request內有效,配置實例: request、session、global session使用的時候首先要在初始化web的web.xml中做如下配置:如果你使用的是Servlet 2.4及以上的web容器,那么你僅需要在web應用的XML聲明文件web.xml中增加下述ContextListener即可:?

?<listener>?
?? <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>?
</listener>?



4.session?


?session作用域表示該針對每一次HTTP請求都會產生一個新的bean,同時該bean僅在當前HTTP session內有效?



5.global session?

?global session作用域類似于標準的HTTP Session作用域,不過它僅僅在基于portlet的web應用中才有意義。Portlet規范定義了全局Session的概念,它被所有構成某個 portlet web應用的各種不同的portlet所共享。在global session作用域中定義的bean被限定于全局portlet Session的生命周期范圍內。如果你在web中使用global session作用域來標識bean,那么web會自動當成session類型來使用?



對于Action來說需要指明scope=”prototype”或singleton=”false”,因為Action是線程不安全的,可能會導致跳轉的頁面錯誤。?

對于帶有數據成員變量的類需要指明scope=”prototype”或singleton=”false”。不然這樣會導致多個線程共用同一個成員變量。?


有狀態的bean都使用Prototype作用域,而對無狀態的bean則應該使用singleton作用域。

總結

以上是生活随笔為你收集整理的Spring配置文件中bean标签的scope属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。