首頁技術文章正文

Spring中Bean的作用域有哪些?Bean的作用范圍

更新時間:2021-05-21 來源:黑馬程序員 瀏覽量:

1577370495235_學IT就到黑馬程序員.gif

Spring IOC容器在根據配置(可以是xml,也可以是注解)創(chuàng)建一個Bean對象實例時,可以為Bean指定實例的作用域。

作用域包括:

singleton(單例模式)

prototype(原型模式)

request(HTTP請求)

session(會話)

global-session(全局會話,在spring5.x版本中已經移除了)

五種作用范圍說明:

singleton

使用該屬性定義Bean時,IOC容器僅創(chuàng)建一個Bean實例,IOC容器每次返回的是同一個Bean實例。

prototype

使用該屬性定義Bean時,IOC容器可以創(chuàng)建多個Bean實例,每次返回的都是一個新的實例。

request

該屬性僅對HTTP請求產生作用,使用該屬性定義Bean時,每次HTTP請求都會創(chuàng)建一個新的Bean,適用于WebApplicationContext環(huán)境。

session

該屬性僅用于HTTP Session,同一個Session共享一個Bean實例。不同Session使用不同的實例。

global-session

該屬性僅用于HTTP Session,同session作用域不同的是,所有的Session共享一個Bean實例。

Bean的作用域

Bean的生命周期

在實際開發(fā)中,我們一般常用的就是單例模式和原型模式。

單例模式生命周期與容器相同。

原型模式生命周期,是每次使用時創(chuàng)建新的對象,用完等待垃圾回收器回收。

(3)應用場景

Bean的作用域基本上使用的都是單例模式,在使用struts2作為表現(xiàn)層框架時,Action對象必須設置為原型(多例)模式。

(4)總結

本題考察的是:

spring中核心容器中bean對象作用范圍以及生命周期。




猜你喜歡:

Spring中如何配置Bean?

springmvc攔截器及源碼分析【技術點干貨】

Spring Boot如何定義多套不同的環(huán)境配置?

黑馬程序員Java培訓

分享到:
在線咨詢 我要報名
和我們在線交談!