一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring配置使用之Bean生命周期詳解

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

2021-01-25 11:22天天洗澡 Java教程

這篇文章主要介紹了Spring配置使用之Bean生命周期詳解,具有一定參考價值,需要的朋友可以了解下。

基本概念

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

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

lazy-init

lazy-init 表示延遲加載 Bean,默認在 Spring IoC 容器初始化時會實例化所有在配置文件定義的 Bean,若啟用了 lazy-init 則在調用 Bean 時才會去創建 Bean。

定義 Bean:

?
1
2
3
4
5
public class Animals {
   public Animals(){
     System.out.println("creating...");
   }
}

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

?
1
2
3
4
5
6
<!-- 表示啟用了延遲加載 -->
<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" />

調用驗證:

?
1
2
3
4
5
6
// 創建容器
String location = ...
ApplicationContext factory = new FileSystemXmlApplicationContext(location);
 
// 輸出結果:
// 若啟用了 lazy-init 則輸出 creating...,否則無打印信息。

depends-on

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

在 Bean 中定義:

?
1
2
3
4
5
6
7
8
9
10
public class BeanOne{
   public BeanOne(){
     System.out.println("BeanOne...");
   }
}
public class BeanTwo{
   public BeanTwon(){
     System.out.println("BeanTwo...");
   }
}

在配置文件中定義:

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

調用驗證:

?
1
2
3
4
5
6
String location = ...
ApplicationContext factory = new FileSystemXmlApplicationContext(location);
BeanOne beanOne= (BeanOne)factory.getBean("beanOne");
// 輸出結果:
// BeanTwo...
// BeanOne...

觀察輸出結果,調用 BeanOne 時,Spring 會自動創建 BeanTwo 實例。

init-method & destory-method

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

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

定義 Bean

?
1
2
3
4
5
6
7
8
9
10
11
12
// 進入房間后要開燈,離開房間后要關燈
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 文件中配置

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

在 Ioc 容器中實例化該 Bean,在銷毀它

?
1
2
3
4
5
6
7
8
// 實例化 Bean
FileSystemXmlApplicationContext context = ...
// 銷毀 Bean
context.registerShutdownHook();
// 輸出內容:
// enter room...
// turn on...
// turn off...

總結

以上就是本文關于Spring配置使用之Bean生命周期詳解的全部內容,希望對大家有所幫助。有什么問題,歡迎大家留言交流討論。感謝朋友們對服務器之家網站的支持!

原文鏈接:http://blog.csdn.net/u012420654/article/details/52761391

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性夜夜春夜夜爽AA片A | 大学生宿舍飞机china free | 黑人biglackon10十 | 草莓秋葵菠萝蜜绿巨人污 | 天天操丝袜 | 韩国黄色网址 | 美女被视频 | 2015小明台湾永久区域免费 | 美女露奶奶 | 97蝌蚪自拍自窝 | 亚洲色导航| 男人的天堂久久精品激情 | 日本九九视频 | 精品卡1卡2卡三卡免费网站 | 亚洲日本免费 | 996热在线视频 | 国产一卡2卡3卡4卡公司科普 | 国产资源在线视频 | 边吃胸边膜下刺激免费男对女 | 2022最新国产在线不卡a | 欧美大陆日韩一区二区三区 | 国产好深好硬好爽我还要视频 | h片在线看 | 五月桃花网婷婷亚洲综合 | 女生被爆操 | 亚洲人成网站在线观看90影院 | 免费视频片在线观看大片 | se婷婷| 成人做视频免费 | 国产成人精品曰本亚洲78 | 91精品国产免费久久 | 成成人看片在线 | 日产国产精品亚洲系列 | 亚洲熟区 | 人生路不在线观看完整版 | 无限在线观看免费入口 | 红楼影视h38bar在线线播放 | 国产高清好大好夹受不了了 | 亚洲成a人片777777久久 | 国产精亚洲视频 | 色婷婷六月丁香在线观看 |