singleton和prototype的區別

2021-07-11 02:45:12 字數 1012 閱讀 9785

默 認情況下,從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作用域!

singleton 是單態模式的 ,有ioc容器管理 ,當然不是執行緒安全的啦 ,不過所謂的執行緒安全也是相對的如果你的類是沒有狀態的, 那用singleton 的效能要高一些 ,因為只有乙個例項。如果你的類是有狀態的 ,那就必須顯示的設定為prototype了在ssh2 專案中,struts2的action交由spring管理的時候,spring預設是singleton的,而struts2的action顯然是有狀 態的,所以必須顯示設定為scope="prototype",prototype為原型模式,每次action請求過來都會建立乙個action但是對 那些dao的實現類推介scope="singleton" ,因為這些類沒有狀態,用singleton只需維護乙個例項,顯然效能高一些

spring bean的作用域:

scope=singleton(預設,單例,生成乙個例項) 不是執行緒安全,效能高

scope=prototype(多執行緒, 生成多個例項)

proto 在c 和c 的使用。

1 c linux 下馬 編譯hadoop 2.7.3 要求 protobuf 2.5.0,只需要將鏈結改為 tar zxvf protobuf 2.6.1.tar.gz cd protobuf 2.6.1 configure make make check sudo make install 我在...

singleton和prototype的區別

默 認情況下,從bean工廠所取得的例項為singleton bean的singleton屬性 singleton spring容器只存在乙個共享的bean例項,預設的配置。那麼spring ioc容器 中只會存在乙個 共享的bean實 例,並且所有對bean的請求,只要id與該bean定義相匹配,...

理解不了的 proto

只有函式才有 protoype物件預設有兩個屬性 constructor 和 proto。prototype是為其他物件提供共享屬性的物件 所有物件都有,內建屬性 指向建構函式物件的原型物件 prototype function person name,age var person1 newpers...