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

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

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

基本概念

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

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

lazy-init

lazy-init 表示延遲加載 Bean,默認(rèn)在 Spring IoC 容器初始化時會實例化所有在配置文件定義的 Bean,若啟用了 lazy-init 則在調(diào)用 Bean 時才會去創(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)用驗證:

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

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

depends-on

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

在 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)用驗證:

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

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

init-method & destory-method

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

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

定義 Bean

// 進入房間后要開燈,離開房間后要關(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 容器中實例化該 Bean,在銷毀它

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

總結(jié)

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

相關(guān)文章

  • java短路邏輯運算符實例用法詳解

    java短路邏輯運算符實例用法詳解

    在本篇文章里小編給大家分享的是一篇關(guān)于java短路邏輯運算符實例用法內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。
    2021-04-04
  • java中變量和常量詳解

    java中變量和常量詳解

    這篇文章主要介紹了Java中變量和常量詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • cmd編譯運行java程序的方法

    cmd編譯運行java程序的方法

    本文主要介紹了cmd編譯運行java程序的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • springboot使用com.github.binarywang包實現(xiàn)微信網(wǎng)頁上的支付和退款

    springboot使用com.github.binarywang包實現(xiàn)微信網(wǎng)頁上的支付和退款

    最近做項目需要實現(xiàn)在pc端需要實現(xiàn)微信的支付,本文主要介紹了springboot使用com.github.binarywang包實現(xiàn)微信網(wǎng)頁上的支付和退款,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • spring mvc4中相關(guān)注解的詳細(xì)講解教程

    spring mvc4中相關(guān)注解的詳細(xì)講解教程

    這篇文章主要給大家介紹了關(guān)于spring mvc4中相關(guān)注解的相關(guān)資料,其中詳細(xì)介紹了關(guān)于@Controller、@RequestMapping、@RathVariable、@RequestParam及@RequestBody等等注解的相關(guān)內(nèi)容,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • 解釋:int型默認(rèn)值為0的問題

    解釋:int型默認(rèn)值為0的問題

    這篇文章主要介紹了解釋:int型默認(rèn)值為0的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java中替代equals,compareTo和toString的方法

    Java中替代equals,compareTo和toString的方法

    這篇文章主要介紹了Java中替代equals,compareTo和toString的方法,文中代碼十分詳細(xì),幫助大家更好的理解的學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java NIO深入分析

    Java NIO深入分析

    本篇技術(shù)文章主要對Java新api(New IO)做了詳細(xì)深入的講解,有助于程序?qū)IO有更加深入的理解。
    2017-12-12
  • Java實現(xiàn)的百度語音識別功能示例

    Java實現(xiàn)的百度語音識別功能示例

    這篇文章主要介紹了Java實現(xiàn)的百度語音識別功能,較為簡明扼要的分析了Java調(diào)用百度語音接口相關(guān)操作步驟,并給出了具體的語音識別用法代碼示例,需要的朋友可以參考下
    2018-08-08
  • 解決java.sql.SQLException:?validateConnection?false問題的方法匯總(最全)

    解決java.sql.SQLException:?validateConnection?false問題的方法匯總(最

    這篇文章主要給大家介紹了關(guān)于解決java.sql.SQLException:?validateConnection?false問題的方法匯總,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03

最新評論

平邑县| 房产| 南安市| 龙岩市| 德格县| 永靖县| 兴隆县| 高州市| 大田县| 铁岭县| 冕宁县| 石家庄市| 二手房| 米易县| 凤凰县| 岢岚县| 双柏县| 中阳县| 砀山县| 丰顺县| 乌苏市| 富裕县| 郯城县| 边坝县| 砚山县| 安福县| 三门县| 余干县| 宁河县| 同德县| 道孚县| 金溪县| 健康| 沁阳市| 肥乡县| 平昌县| 锡林浩特市| 丹凤县| 临沂市| 海南省| 自贡市|