欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Spring配置使用之Bean生命周期的示例分析

這篇文章主要介紹了Spring配置使用之Bean生命周期的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

在鐵山港等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),鐵山港網(wǎng)站建設(shè)費(fèi)用合理。

基本概念

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

下面來探究下幾個(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...,否則無打印信息。

depends-on

depends-on 是指指定 Bean 初始化及銷毀時(shí)的順序。該屬性可以用于標(biāo)識(shí)當(dāng)前 Bean 初始化之前顯式地強(qiáng)制一個(gè)或多個(gè) Bean 被初始化。若指定 Bean 的作用域都是 singleton 時(shí),表示該屬性指定的 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)用驗(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è)初始化操作來確保該 Bean 可用狀態(tài)。同樣地,當(dāng)不需要 Bean 時(shí),將其從容器中移除時(shí),可能還需要按順序執(zhí)行一些清楚工作。

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

定義 Bean

// 進(jìn)入房間后要開燈,離開房間后要關(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,在銷毀它

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

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Spring配置使用之Bean生命周期的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

名稱欄目:Spring配置使用之Bean生命周期的示例分析
分享網(wǎng)址:http://chinadenli.net/article34/gogipe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司品牌網(wǎng)站設(shè)計(jì)虛擬主機(jī)用戶體驗(yàn)網(wǎng)站設(shè)計(jì)Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司