spring中注解屬性scope的prototype是什么意思?
默認情況下,從 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以后的版本。
spring 默認scope 是單例模式
這樣只會創建一個Action對象
每次訪問都是同一個Action對象,數據不安全
struts2 是要求 每次次訪問 都對應不同的Action
scope="prototype" 可以保證 當有請求的時候 都創建一個Action對象