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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring 中属性scope 的prototype(有状态)和singleton(无状态)

發布時間:2025/7/25 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring 中属性scope 的prototype(有状态)和singleton(无状态) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

默認情況下,從bean工廠所取得的實例為Singleton(bean的singleton屬性) Singleton: Spring容器只存在一個共享的bean實例,

默認的配置。 Prototype: 每次對bean的請求都會創建一個新的bean實例。二者選擇的原則:有狀態的bean都使用Prototype作用域

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

在 Spring2.0中除了以前的Singleton和Prototype外又加入了三個新的web作用域,分別為request、session和 global session。如

果你希望容器里的某個bean擁有其中某種新的web作用域,除了在bean級上配置相應的scope屬性,還必須在容器級做一個額外的初始

化配置。即在web應用的web.xml中增加這么一個ContextListener:

org.springframework.web.context.request.RequestContextListener 以上是針對Servlet 2.4以后的版本。比如Request作用域!

引用:http://wdlisoft.javaeye.com/blog/479049

singleton是單態模式的 ,有ioc容器管理 ,當然不是線程安全的啦 ,不過所謂的線程安全也是相對的

如果你的類是沒有狀態的, 那用singleton 的性能要高一些 ,因為只有一個實例 。?
如果你的類是有狀態的 ,那就必須顯示的設置為prototype了

在ssh2 項目中 , struts2的action交由spring管理的時候 ,spring默認是singleton的 ,而struts2的action顯然是有狀態的 ,所以必須顯示設置為?
scope=“prototype”

prototype為原型模式 , 每次action請求過來都會創建一個action

但是對那些Dao的實現類推介scope=“singleton” ,因為這些類沒有狀態,用singleton只需維護一個實例,顯然性能高一些

?

?

有狀態會話bean?? :每個用戶有自己特有的一個實例,在用戶的生存期內,bean保持了用戶的信息,即“有狀態”;一旦用戶滅亡(調用結束或實例結束),bean的生命期也告結束。即每個用戶最初都會得到一個初始的bean。?

無狀態會話bean?? :bean一旦實例化就被加進會話池中,各個用戶都可以共用。即使用戶已經消亡,bean ? 的生命期也不一定結束,它可能依然存在于會話池中,供其他用戶調用。由于沒有特定的用戶,那么也就不能保持某一用戶的狀態,所以叫無狀態bean。但無狀態會話bean ? 并非沒有狀態,如果它有自己的屬性(變量),那么這些變量就會受到所有調用它的用戶的影響,這是在實際應用中必須注意的

轉載于:https://www.cnblogs.com/jxrichar/p/5240017.html

總結

以上是生活随笔為你收集整理的spring 中属性scope 的prototype(有状态)和singleton(无状态)的全部內容,希望文章能夠幫你解決所遇到的問題。

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