更新時(shí)間:2021-05-21 來(lái)源:黑馬程序員 瀏覽量:
Spring IOC容器在根據(jù)配置(可以是xml,也可以是注解)創(chuàng)建一個(gè)Bean對(duì)象實(shí)例時(shí),可以為Bean指定實(shí)例的作用域。
作用域包括:
singleton(單例模式)
prototype(原型模式)
request(HTTP請(qǐng)求)
session(會(huì)話)
global-session(全局會(huì)話,在spring5.x版本中已經(jīng)移除了)
五種作用范圍說(shuō)明:
singleton
使用該屬性定義Bean時(shí),IOC容器僅創(chuàng)建一個(gè)Bean實(shí)例,IOC容器每次返回的是同一個(gè)Bean實(shí)例。
prototype
使用該屬性定義Bean時(shí),IOC容器可以創(chuàng)建多個(gè)Bean實(shí)例,每次返回的都是一個(gè)新的實(shí)例。
request
該屬性僅對(duì)HTTP請(qǐng)求產(chǎn)生作用,使用該屬性定義Bean時(shí),每次HTTP請(qǐng)求都會(huì)創(chuàng)建一個(gè)新的Bean,適用于WebApplicationContext環(huán)境。
session
該屬性僅用于HTTP Session,同一個(gè)Session共享一個(gè)Bean實(shí)例。不同Session使用不同的實(shí)例。
global-session
該屬性僅用于HTTP Session,同session作用域不同的是,所有的Session共享一個(gè)Bean實(shí)例。
Bean的生命周期
在實(shí)際開(kāi)發(fā)中,我們一般常用的就是單例模式和原型模式。
單例模式生命周期與容器相同。
原型模式生命周期,是每次使用時(shí)創(chuàng)建新的對(duì)象,用完等待垃圾回收器回收。
(3)應(yīng)用場(chǎng)景
Bean的作用域基本上使用的都是單例模式,在使用struts2作為表現(xiàn)層框架時(shí),Action對(duì)象必須設(shè)置為原型(多例)模式。
(4)總結(jié)
本題考察的是:
spring中核心容器中bean對(duì)象作用范圍以及生命周期。
springmvc攔截器及源碼分析【技術(shù)點(diǎn)干貨】
【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營(yíng)】深圳跨境電商運(yùn)營(yíng)畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開(kāi)發(fā)】上海校區(qū)AI鴻蒙開(kāi)發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開(kāi)發(fā)-Python】畢業(yè)33個(gè)工作日,就業(yè)率已達(dá)到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開(kāi)發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級(jí)均薪12k+
2025-09-19