国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring框架Bean對象的五個作用域

這篇具有很好參考價值的文章主要介紹了Spring框架Bean對象的五個作用域。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?

?一、前言:Bean對象簡介

在Spring項目中,那些由Spring?IoC容器所管理的對象,稱為bean。簡單地講,bean就是由Spring容器初始化、裝配及管理的對象,除此之外,bean就與應用程序中的其他對象沒有什么區(qū)別了。?而bean定義以及bean相互間的依賴關(guān)系將通過配置元數(shù)據(jù)來描述。

上一段描述簡析: spring的bean對象和普通java對象的區(qū)別就是spring的bean對象由spring創(chuàng)建,spring容器管理,spring實現(xiàn)裝配(注入)。 普通java對象是指沒有使用spring框架時,創(chuàng)建,管理,裝配(注入)是由開發(fā)人員自己完成的。

二、Bean對象的5個作用域:

???編程人員可以控制bean對象的作用域(就是bean對象的作用范圍)。主要就是控制某個bean對象的可用范圍。

1.Prototype(原型模式)的效果是每次服務(wù)端用getBean方法獲取同一個類的bean對象時都會創(chuàng)建一個新的bean對象。(prototype模式不會共享bean對象的狀態(tài),適用于每次操作的Bean對象都是不同狀態(tài)的情況或者需要頻繁創(chuàng)建新實例的情況)

2.而第二種request模式的效果是每次客戶端發(fā)出Http請求才創(chuàng)建一個bean對象。 相比較而言Prototype原型模式會相對更頻繁的創(chuàng)建對象,而request模式是一次復雜Http請求處理完畢,第二次Http請求才創(chuàng)建一個新的同類型的bean對象(request模式下:每個bean對象對于一個Http請求是唯一的)。 ?舉例:Prototype原型模式就相當于吃花生豆,每次張嘴吃的都是不同的花生豆。 ?Request模式就相當于小孩吃大餅干,一次吃大餅干一次請求吃的是同一個餅干(直到餅干吃完了,小孩再向大人發(fā)起第二次請求才會吃到第二塊餅干)。?

3.session模式相比較request模式而言,request模式創(chuàng)建bean對象會相對更加頻繁。 因為request是客戶端每次發(fā)出Http請求都會創(chuàng)建一個新的bean對象。而session模式指的是客戶端和服務(wù)端一次通信完畢。此客戶端在一段有效的時間內(nèi)沒有再發(fā)出請求則都屬于一個session范圍,不會創(chuàng)建第二個bean對象(在此有效的時間內(nèi)客戶端可以發(fā)出多次Http請求)。 所以session模式比request模式的bean對象作用域更大,bean對象創(chuàng)建頻率相對較少。?舉例:session模式就相當于小孩吃一鍋米飯,在吃同一頓飯的時間內(nèi),小孩向大人發(fā)出多次吃飯請求,吃的都是同一鍋飯(直到這頓飯吃飯,到下一次吃飯的會話<下一頓飯的時間>才會制造第二鍋飯)(session模式是同一個會話內(nèi)多次請求使用的是同一個bean對象,同一個吃飯時間內(nèi)多次舀飯,舀的是同一鍋飯)(適用于保存用戶特定的數(shù)據(jù)或狀態(tài))。

???4.Golobal Session模式:在整個Portlet規(guī)范的web項目中,只會創(chuàng)建一個全局會話的Bean對象(一個Portlet規(guī)范的web項目保持一個bean對象)。注意:spring項目中沒有Golobal Session模式。 舉例: 飯店賣飯,多個家庭可以都吃一鍋內(nèi)的飯, 而且一鍋飯可以賣好幾頓(比如一大鍋稀飯,早上中午都售賣)Golobal Session模式比session模式的作用域更大。?(Golobal Session模式對應一個項目一個類只有一個bean對象, 而session模式是一個項目內(nèi)同一個客戶端在某個有效的時間內(nèi)訪問的是同一個bean對象<如果超出這個有效時間此客戶端訪問本項目時,同一個bean對象會創(chuàng)建不同的bean對象>)

??5.singleton模式:同一個bean對象在同一個spring容器中只創(chuàng)建一份兒。Bean對象是全局共享的,適用于無狀態(tài)的Bean或者需要在多個組件之間共享數(shù)據(jù)的情況。 我的理解:和上邊的Golobal Session模式類似(設(shè)置了singleton模式的bean對象,在一個web項目中只有一份兒)

?

其中request、session、和golobalSession三種模式只適用于WebApplica

tionContext上下文環(huán)境(就是只適用于web項目)。 而singleton和prototype兩個作用域適用于任何類型的項目。

?

五大作用域范圍對比

Spring框架Bean對象的五個作用域

?

總結(jié), 5種作用域的大小: ?prototype < request < session < golobal session < singleton ?

我的理解: 在spring項目中只需要記憶prototype < request < session ?< singleton。 因為golobal session不適用于spring項目,而且我認為golobal session 和 singleton都是在一個項目中只保留一個bean對象。


By? zhaoYongQi? ? ? 2024/03/07? 17:37

?

?

?

三、知識點精簡:

以內(nèi)內(nèi)容的來源于網(wǎng)絡(luò),文章鏈接如下(如有冒犯,請留言):

https://blog.csdn.net/qq_62262918/article/details/135360689

下面是網(wǎng)上一篇比較精簡的文章,方便快速理解:

1.Singleton(單例):默認的作用域

在整個應用程序中只創(chuàng)建一個Bean實例。
所有對該Bean的請求都將返回同一個實例。
Bean是全局共享的,適用于無狀態(tài)的Bean或者需要在多個組件之間共享數(shù)據(jù)的情況。

2.Prototype(原型)


每次對Bean的請求都會創(chuàng)建一個新的實例。
沒有共享狀態(tài),適用于有狀態(tài)的Bean或者需要頻繁創(chuàng)建新實例的情況

3.Request(請求)

在每個HTTP請求中創(chuàng)建一個新的Bean實例。
每個請求的Bean實例對于該請求是唯一的。
僅在Web應用程序的上下文中有效,適用于處理HTTP請求的控制器或服務(wù)。

4.Session(會話)

在每個用戶會話(Session)中創(chuàng)建一個新的Bean實例。
對于同一用戶的所有請求,都將使用相同的Bean實例。
僅在Web應用程序的上下文中有效,適用于保存用戶特定的數(shù)據(jù)或狀態(tài)。

5.Global Session(全局會話)

在整個應用程序的全局會話中創(chuàng)建一個新的Bean實例。
僅在基于Portlet的Web應用程序中有效,通常與Portlet會話一起使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-837896.html

到了這里,關(guān)于Spring框架Bean對象的五個作用域的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring Bean 的作用域(Bean Scope)

    大家好,我是 god23bin,今天我們來聊一聊 Spring 框架中的 Bean 作用域(Scope)。 我們在以 XML 作為配置元數(shù)據(jù)的情況下,進行 Bean 的定義,是這樣的: 我們寫了一個 Bean 定義(Bean Definition),就是用于創(chuàng)建所定義的類的實例的。 一個 Bean 定義,我們可以類比一個類的定義,你

    2024年02月09日
    瀏覽(20)
  • 【Spring】Bean的作用域

    根據(jù) 【動力節(jié)點】最新Spring框架教程,全網(wǎng)首套Spring6教程,跟老杜從零學spring入門到高級 以及老杜的原版筆記 https://www.yuque.com/docs/share/866abad4-7106-45e7-afcd-245a733b073f?# 《Spring6》 進行整理, 文檔密碼:mg9b Spring 相關(guān)文章整理匯總歸納于:https://www.yuque.com/u27599042/zuisie singleto

    2024年02月14日
    瀏覽(21)
  • Spring Bean 作用域的定義

    Spring Bean 作用域的定義

    ????????在 Spring 配置中,我們可以通過 scope 屬性來定義 Spring Bean 的作用域,可以接受 5 個內(nèi)建的值,分別代表 5 種作用域類型,下面給大家詳細總結(jié)一下: 1、singleton,用來定義一個 Bean 為單例,也就是說在 Spring loC 容器中僅有唯一 的一個實例對象,Spring 中的 Bean 默認

    2024年02月12日
    瀏覽(21)
  • Spring中Bean的作用域和Spring生命周期

    Spring中Bean的作用域和Spring生命周期

    從前面的文章中我們看出Spring是用來存儲和讀取Bean的,因此Spring中Bean是最核心的資源,所以我們將對Bean進行深入的理解。 現(xiàn)在有一個公共的Bean,提供給了兩個用戶去使用,但是在使用過程中,用戶一修改了公共的Bean數(shù)據(jù),當用戶2在使用時,卻發(fā)現(xiàn)產(chǎn)生了邏輯上的錯誤。

    2024年02月16日
    瀏覽(25)
  • Spring | Bean 作用域和生命周期

    Spring | Bean 作用域和生命周期

    Spring 是用來讀取和存儲 Bean,因此在 Spring 中 Bean 是最核心的操作資源,所以接下來我們深入學習?下 Bean 對象 假設(shè)現(xiàn)在有?個公共的 Bean,提供給 A 用戶和 B 用戶使用,然而在使用的途中 A 用戶卻 “悄悄” 地修改了公共 Bean 的數(shù)據(jù),導致 B 用戶在使用時發(fā)生了預期之外的邏

    2024年02月14日
    瀏覽(21)
  • Spring Bean作用域與生命周期

    Spring Bean作用域與生命周期

    目錄 Bean的作用域: Bean有六大行為模式 1、singleton:單例模式(默認) 2、prototype: 原型模式(多例模式) 3、request: 請求作用域(Spring MVC) 4、session: 會話作用域(Spring MVC) 5、application: 全局作用域(Spring MVC) 6、websocket: HTTP WebSocket 作用域(Spring WebSocket) applicationContext和singleton的區(qū)別? Bea

    2024年02月02日
    瀏覽(25)
  • Spring(Bean 作用域和生命周期)

    Spring(Bean 作用域和生命周期)

    目錄 1. 案例1: Bean作用域的問題 2. 作用域 3. 設(shè)置 Bean 的作用域 4. Spring 的執(zhí)行流程 5. Bean 的生命周期 現(xiàn)在有一個公共的 Bean,通過給 A 用戶 和 B 用戶使用, 然后在使用的過程中 A 偷偷的修改了公共 Bean 的數(shù)據(jù), 導致 B 在使用時發(fā)生了預期之外的邏輯錯誤 (1) 公共 Bean:? ?[名稱是

    2024年02月19日
    瀏覽(78)
  • 【Spring】Bean的作用域和生命周期

    【Spring】Bean的作用域和生命周期

    目錄 一、引入案例來探討B(tài)ean的作用域 二、Bean的作用域 2.1、Bean的6種作用域 2.2、設(shè)置Bean的作用域 三、Spring的執(zhí)行流程 ?四、Bean的聲明周期 1、生命周期演示 首先我們創(chuàng)建一個User類,定義一個用戶信息,在定義一個Users類,使用方法注解將user存入Spring中,然后兩個用戶A對這

    2024年02月14日
    瀏覽(24)
  • Spring Bean的作用域及生命周期

    Spring Bean的作用域及生命周期

    目錄 前言: Bean的作用域(Scope) 單例模式 原型模式(多例作用域) 請求作用域(request) 會話作用域 全局作用域 網(wǎng)絡(luò)長連接 Spring執(zhí)行流程 Bean的生命周期 測試 小結(jié): ? ? 使用Spring框架時,我們需要清楚Spring托管Bean的作用域和生命周期,這樣使用框架才會更加得心應手。

    2024年02月03日
    瀏覽(22)
  • Spring Bean的作用域和生命周期

    Spring Bean的作用域和生命周期

    Bean 的作用域指的是 Bean 在 Spring 容器中的行為(Bean 實例創(chuàng)建及生命周期),它的行為是由 Spring 來管理的,可以根據(jù)具體情況選擇不同的作用域來達到性能優(yōu)化、資源利用最大化和可維護性等目的。 Bean 作用域(Scope)類型主要有如下幾種: 其中前兩種是 Spring 核心作用域,

    2024年02月12日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包