欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring配置使用之Bean生命周期詳解

 更新時(shí)間:2017年10月25日 09:53:15   作者:天天洗澡  
這篇文章主要介紹了Spring配置使用之Bean生命周期詳解,具有一定參考價(jià)值,需要的朋友可以了解下。

基本概念

Spring 中的 Bean 的生命周期,指的是 Bean 從創(chuàng)建到銷(xiāo)毀的過(guò)程。

下面來(lái)探究下幾個(gè)有關(guān) Bean 生命周期配置的屬性。

lazy-init

lazy-init 表示延遲加載 Bean,默認(rèn)在 Spring IoC 容器初始化時(shí)會(huì)實(shí)例化所有在配置文件定義的 Bean,若啟用了 lazy-init 則在調(diào)用 Bean 時(shí)才會(huì)去創(chuàng)建 Bean。

定義 Bean:

public class Animals {
   public Animals(){
     System.out.println("creating...");
   }
}

配置方式如下(以 xml 文件為例):

<!-- 表示啟用了延遲加載 -->
<bean id="animals" class="com.demo.Animals" lazy-init="true"/>

<!-- 不啟用延遲加載 -->
<bean id="animals" class="com.demo.Animals" lazy-init="default"/>
<bean id="animals" class="com.demo.Animals" />

調(diào)用驗(yàn)證:

// 創(chuàng)建容器
String location = ...
ApplicationContext factory = new FileSystemXmlApplicationContext(location);

// 輸出結(jié)果:
// 若啟用了 lazy-init 則輸出 creating...,否則無(wú)打印信息。

depends-on

depends-on 是指指定 Bean 初始化及銷(xiāo)毀時(shí)的順序。該屬性可以用于標(biāo)識(shí)當(dāng)前 Bean 初始化之前顯式地強(qiáng)制一個(gè)或多個(gè) Bean 被初始化。若指定 Bean 的作用域都是 singleton 時(shí),表示該屬性指定的 Bean 要在當(dāng)前 Bean 銷(xiāo)毀之前被銷(xiāo)毀。

在 Bean 中定義:

public class BeanOne{
   public BeanOne(){
     System.out.println("BeanOne...");
   }
}
public class BeanTwo{
   public BeanTwon(){
     System.out.println("BeanTwo...");
   }
}

在配置文件中定義:

<bean id="beanOne" class="com.demo.BeanOne" lazy-init="true" depends-on="beanTwo" /> 
<bean id="beanTwo" class="com.demo.BeanTwo" lazy-init="true" /> 

調(diào)用驗(yàn)證:

String location = ...
ApplicationContext factory = new FileSystemXmlApplicationContext(location);
BeanOne beanOne= (BeanOne)factory.getBean("beanOne");
// 輸出結(jié)果:
// BeanTwo...
// BeanOne...

觀察輸出結(jié)果,調(diào)用 BeanOne 時(shí),Spring 會(huì)自動(dòng)創(chuàng)建 BeanTwo 實(shí)例。

init-method & destory-method

當(dāng)實(shí)例化一個(gè) Bean 時(shí),可能需要執(zhí)行一個(gè)初始化操作來(lái)確保該 Bean 可用狀態(tài)。同樣地,當(dāng)不需要 Bean 時(shí),將其從容器中移除時(shí),可能還需要按順序執(zhí)行一些清楚工作。

為 Bean 定義初始化和銷(xiāo)毀操作,需要使用 init-method 和 destory-method 屬性。

定義 Bean

// 進(jìn)入房間后要開(kāi)燈,離開(kāi)房間后要關(guān)燈
public class Room {
  public Room(){
    System.out.println("enter room...");
  }
  public void turnOnLights(){
    System.out.println("turn on...");
  }
  public void turnOffLights(){
    System.out.println("turn off...");
  }
}

在 Xml 文件中配置

<bean class="com.demo.Room" init-method="turnOnLights" destroy-method="turnOffLights"/>

在 Ioc 容器中實(shí)例化該 Bean,在銷(xiāo)毀它

// 實(shí)例化 Bean
FileSystemXmlApplicationContext context = ...
// 銷(xiāo)毀 Bean
context.registerShutdownHook(); 
// 輸出內(nèi)容:
// enter room...
// turn on...
// turn off...

總結(jié)

以上就是本文關(guān)于Spring配置使用之Bean生命周期詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Spring中bean的繼承與抽象代碼示例、spring中的FactoryBean代碼示例等,有什么問(wèn)題,歡迎大家留言交流討論。感謝朋友們對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • SpringBoot使用@ControllerAdvice全局異常處理

    SpringBoot使用@ControllerAdvice全局異常處理

    這篇文章主要介紹了SpringBoot使用@ControllerAdvice全局異常處理,異常處理是非常重要的一部分,它可以幫助我們捕獲并處理應(yīng)用程序中出現(xiàn)的異常情況,提高應(yīng)用程序的健壯性和可靠性,需要的朋友可以參考下
    2023-07-07
  • Spring中自動(dòng)裝配的4種方式

    Spring中自動(dòng)裝配的4種方式

    今天小編就為大家分享一篇關(guān)于Spring中自動(dòng)裝配的4種方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • SpringBoot 項(xiàng)目中的圖片處理策略之本地存儲(chǔ)與路徑映射

    SpringBoot 項(xiàng)目中的圖片處理策略之本地存儲(chǔ)與路徑映射

    在SpringBoot項(xiàng)目中,靜態(tài)資源存放在static目錄下,使得前端可以通過(guò)URL來(lái)訪問(wèn)這些資源,我們就需要將文件系統(tǒng)的文件路徑與URL建立一個(gè)映射關(guān)系,把文件系統(tǒng)中的文件當(dāng)成我們的靜態(tài)資源即可,本文給大家介紹SpringBoot本地存儲(chǔ)與路徑映射的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2023-12-12
  • jvm調(diào)優(yōu)的幾種場(chǎng)景(小結(jié))

    jvm調(diào)優(yōu)的幾種場(chǎng)景(小結(jié))

    本文主要介紹了jvm調(diào)優(yōu)的幾種場(chǎng)景,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java詳細(xì)介紹單例模式的應(yīng)用

    Java詳細(xì)介紹單例模式的應(yīng)用

    單例模式(Singleton Pattern)是 Java 中最簡(jiǎn)單的設(shè)計(jì)模式之一。這種類(lèi)型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式
    2022-09-09
  • 詳解Java注解教程及自定義注解

    詳解Java注解教程及自定義注解

    這篇文章主要為大家詳細(xì)介紹了Java注解教程及自定義注解,幫助大家更好地學(xué)習(xí)Java注解,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列的簡(jiǎn)單定義與使用方法

    Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列的簡(jiǎn)單定義與使用方法

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列的簡(jiǎn)單定義與使用方法,簡(jiǎn)單描述了隊(duì)列的功能、特點(diǎn),并結(jié)合java實(shí)例形式分析了隊(duì)列的簡(jiǎn)單定義與使用方法,需要的朋友可以參考下
    2017-10-10
  • SpringBoot集成Hadoop對(duì)HDFS的文件操作方法

    SpringBoot集成Hadoop對(duì)HDFS的文件操作方法

    這篇文章主要介紹了SpringBoot集成Hadoop對(duì)HDFS的文件操作方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Java BeanMap實(shí)現(xiàn)Bean與Map的相互轉(zhuǎn)換

    Java BeanMap實(shí)現(xiàn)Bean與Map的相互轉(zhuǎn)換

    這篇文章主要介紹了利用BeanMap進(jìn)行對(duì)象與Map的相互轉(zhuǎn)換,通過(guò)net.sf.cglib.beans.BeanMap類(lèi)中的方法來(lái)轉(zhuǎn)換,效率極高,本文給大家分享實(shí)現(xiàn)代碼,感興趣的朋友一起看看吧
    2022-11-11
  • Spring boot監(jiān)控Actuator-Admin實(shí)現(xiàn)過(guò)程詳解

    Spring boot監(jiān)控Actuator-Admin實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要介紹了Spring boot監(jiān)控Actuator-Admin實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論