最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解SpringIOC容器中bean的作用范圍和生命周期

 更新時間:2021年02月22日 09:57:29   作者:chenhui_Sun  
這篇文章主要介紹了SpringIOC容器中bean的作用范圍和生命周期,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

bean的作用范圍:
可以通過scope屬性進行設置:

  • singleton 單例的(默認)
  • prototype 多例的
  • request 作用于web應用的請求范圍
  • session 作用于web應用的會話范圍
  • global-session 作用于集群環(huán)境的會話范圍(全局會話范圍)

測試:

<!-- 默認是單例的(singleton)-->
<bean id="human" class="com.entity.Human"></bean>
<bean id="human" class="com.entity.Human" scope="singleton"></bean>
@Test
 public void test(){
  //通過ClassPathXmlApplicationContext對象加載配置文件方式將javabean對象交給spring來管理
  ApplicationContext applicationContext=new ClassPathXmlApplicationContext("bean.xml");
  //獲取Spring容器中的bean對象,通過id和類字節(jié)碼來獲取
  Human human = applicationContext.getBean("human", Human.class);
  Human human1 = applicationContext.getBean("human", Human.class);
  System.out.println(human==human1);
 }

結(jié)果:

在這里插入圖片描述

將scope屬性設置為prototype時

  <bean id="human" class="com.entity.Human" scope="prototype"></bean>

結(jié)果:

在這里插入圖片描述

singleton和prototype的區(qū)別

  • 如果bean屬性設置為singleton時,當我們加載配置文件時對象已經(jīng)被初始化
  • 而如果使用prototype時,對象的創(chuàng)建是我們什么時候獲取bean時什么時候創(chuàng)建對象

當設置為prototype時

在這里插入圖片描述
在這里插入圖片描述

當設置為singleton時

在這里插入圖片描述

bean對象的生命周期

單例對象:

  • 出生:當容器創(chuàng)建時對象出生
  • 活著:只有容器還在,對象一直活著
  • 死亡:容器銷戶,對象死亡
  • 單例對象和容器生命周期相同

測試:
先設置屬性init-method和destroy-method,同時在person類中寫入兩個方法進行輸出打印

 public void init(){
  System.out.println("初始化...");
 }

 public void destroy(){
  System.out.println("銷毀了...");
 }
<bean id="person" class="com.entity.Person" scope="singleton" init-method="init" destroy-method="destroy">
   
  </bean>

測試類:

@Test
 public void test(){
  //通過ClassPathXmlApplicationContext對象加載配置文件方式將javabean對象交給spring來管理
  ClassPathXmlApplicationContext Context=new ClassPathXmlApplicationContext("bean.xml");
//  //獲取Spring容器中的bean對象,通過id和類字節(jié)碼來獲取
  Person person = Context.getBean("person", Person.class);
  //銷毀容器
  Context.close();
 }

結(jié)果:

在這里插入圖片描述

總結(jié):單例對象和容器生命周期相同

當屬性改為prototype多例時

  • 出生:當我們使用對象時spring框架為我們創(chuàng)建
  • 活著:對象只要是在使用過程中就一直活著
  • 死亡:當對象長時間不用,且沒有別的對象應用時,由java垃圾回收器回收對象

測試類:

@Test
 public void test(){
  //通過ClassPathXmlApplicationContext對象加載配置文件方式將javabean對象交給spring來管理
  ClassPathXmlApplicationContext Context=new ClassPathXmlApplicationContext("bean.xml");
//  //獲取Spring容器中的bean對象,通過id和類字節(jié)碼來獲取
  Person person = Context.getBean("person", Person.class);
  //銷毀容器
  Context.close();
 }

結(jié)果:

在這里插入圖片描述

總結(jié):由于Spring容器不知道多例對象什么時候使用,什么時候能用完,只有我們自己知道,因此它不會輕易的把對象銷毀,它會通過java垃圾回收器回收對象

到此這篇關于SpringIOC容器中bean的作用范圍和生命周期的文章就介紹到這了,更多相關SpringIOC容器bean作用范圍和生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java Socket實現(xiàn)文件傳輸示例代碼

    Java Socket實現(xiàn)文件傳輸示例代碼

    這篇文章主要介紹了Java Socket實現(xiàn)文件傳輸示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java使用Zxing二維碼生成的簡單示例

    Java使用Zxing二維碼生成的簡單示例

    ZXing是一個開源的,用Java實現(xiàn)的多種格式的1D/2D條碼圖像處理庫,下面這篇文章主要給大家介紹了關于Java使用Zxing二維碼生成的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • Java8實現(xiàn)FTP及SFTP文件上傳下載

    Java8實現(xiàn)FTP及SFTP文件上傳下載

    這篇文章主要介紹了Java8實現(xiàn)FTP及SFTP文件上傳下載,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • eclipse項目在IDEA中打開并運行的詳細圖文教程

    eclipse項目在IDEA中打開并運行的詳細圖文教程

    這篇文章主要給大家介紹了關于eclipse項目在IDEA中打開并運行的詳細圖文教程,至從使用IDEA開發(fā)工具以來,不少次有使用IDEA運行Eclipse項目或非Maven項目,所以這里給大家總結(jié)下,需要的朋友可以參考下
    2023-09-09
  • 一文帶你搞懂Java定時器Timer的使用

    一文帶你搞懂Java定時器Timer的使用

    定時器類似于我們生活中的鬧鐘,可以設定一個時間來提醒我們。而定時器是指定一個時間去執(zhí)行一個任務,讓程序去代替人工準時操作。本文就來聊聊Java定時器Timer的使用,需要的可以參考一下
    2023-01-01
  • Spring boot開發(fā)web應用JPA過程解析

    Spring boot開發(fā)web應用JPA過程解析

    這篇文章主要介紹了Spring boot開發(fā)web應用JPA過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • 詳解MyBatis自定義Plugin插件

    詳解MyBatis自定義Plugin插件

    這篇文章主要介紹了MyBatis自定義Plugin插件的相關知識,實現(xiàn)方法也很簡單,只需實現(xiàn) Interceptor 接口,并指定想要攔截的方法簽名即可,需要的朋友可以參考下
    2018-06-06
  • Java中的數(shù)組使用詳解及練習

    Java中的數(shù)組使用詳解及練習

    數(shù)組是Java程序中最常見的一種數(shù)據(jù)結(jié)構(gòu),它能夠?qū)⑾嗤愋偷臄?shù)據(jù)用一個標識符封裝到一起,構(gòu)成一個對象序列或基本數(shù)據(jù)類型,這篇文章主要給大家介紹了關于Java中數(shù)組使用詳解及練習的相關資料,需要的朋友可以參考下
    2024-03-03
  • OpenFeign實現(xiàn)攜帶請求頭方案詳細介紹

    OpenFeign實現(xiàn)攜帶請求頭方案詳細介紹

    這篇文章主要介紹了OpenFeign實現(xiàn)攜帶請求頭方案,在通過???OpenFeign???進行服務調(diào)用的過程中,我們需要將用戶的??user-token???、??lang??等信息放入請求header中。在分布式系統(tǒng)中,往往一個業(yè)務接口內(nèi)部會發(fā)生多次RPC調(diào)用
    2022-11-11
  • Spring-boot oauth2使用RestTemplate進行后臺自動登錄的實現(xiàn)

    Spring-boot oauth2使用RestTemplate進行后臺自動登錄的實現(xiàn)

    這篇文章主要介紹了Spring-boot oauth2使用RestTemplate進行后臺自動登錄的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論

出国| 茂名市| 禄丰县| 闸北区| 汉川市| 台湾省| 巴塘县| 铜梁县| 当阳市| 灵宝市| 磐安县| 阿克陶县| 绥江县| 邵东县| 肥西县| 定州市| 裕民县| 项城市| 车致| 西峡县| 平阴县| 克拉玛依市| 凌海市| 宜宾市| 台北县| 海林市| 大埔县| 肇庆市| 万源市| 阿克| 泽州县| 濉溪县| 鹰潭市| 万州区| 莲花县| 宁乡县| 白朗县| 苗栗市| 岳普湖县| 鞍山市| 报价|