1.@Scope註解是什麼
@Scope註解是springIoc容器中的一個作用域,在 Spring IoC 容器中具有以下幾種作用域:基本作用域singleton(單例)、prototype(多例),Web 作用域(reqeust、session、globalsession),自定義作用域
a.singleton單例模式 -- 全局有且僅有一個實例
b.prototype原型模式 -- 每次獲取Bean的時候會有一個新的實例(多實例)
c.request -- request表示該針對每一次HTTP請求都會產生一個新的bean,同時該bean僅在當前HTTP request內有效
d.session -- session作用域表示該針對每一次HTTP請求都會產生一個新的bean,同時該bean僅在當前HTTP session內有效
2.@Scope註解怎麼使用
直接在bean對象方法上增加@Scope註解就可以如下:
@Scope(value = "prototype")
不寫默認是singleton單例模式
另外注意一點:
Spring 只幫我們管理單例模式 Bean 的完整生命週期(實例化 -> 屬性賦值 -> 初始化 -> 銷燬),對於多實例(prototype ) 的 bean ,在第一次獲取該bean實例時纔會創建並初始化,且容器不會管理bean,容器關閉時不會調用銷燬方法。。
注:ioc容器默認是單實例
多實例:僅當bean被使用的時候才創建
單實例:創建ioc容器時,實例bean就被創建