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

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 詳解Java的Spring框架中bean的定義以及生命周期

詳解Java的Spring框架中bean的定義以及生命周期

2020-03-08 15:22goldensun JAVA教程

這篇文章主要介紹了Java的Spring框架中bean的定義以及生命周期,bean的實例化是Java web開發中的重要基礎,需要的朋友可以參考下

bean的定義
形成應用程序的骨干是由Spring IoC容器所管理的對象稱為bean。bean被實例化,組裝,并通過Spring IoC容器所管理的對象。這些bean由容器提供,例如,在XML的<bean/>定義,已經看到了前幾章的形式配置元數據創建。

bean定義包含所需要的容器要知道以下稱為配置元數據的信息:

  1. 如何創建一個bean
  2. Bean 生命周期的詳細信息
  3. Bean 依賴關系

上述所有配置元數據轉換成一組的下列屬性構成每個bean的定義。

詳解Java的Spring框架中bean的定義以及生命周期

Spring配置元數據
Spring IoC容器完全由在此配置元數據實際寫入的格式解耦。有下列提供的配置元數據的Spring容器三個重要的方法:

  1. 基于XML的配置文件
  2. 基于注解的配置
  3. 基于Java的配置

我們已經看到了基于XML的配置元數據如何提供給容器,但讓我們看到了不同的bean定義,包括延遲初始化,初始化方法和銷毀方法基于XML配置文件的另一個示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="UTF-8"?>
 
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
  <!-- A simple bean definition -->
  <bean id="..." class="...">
    <!-- collaborators and configuration for this bean go here -->
  </bean>
 
  <!-- A bean definition with lazy init set on -->
  <bean id="..." class="..." lazy-init="true">
    <!-- collaborators and configuration for this bean go here -->
  </bean>
 
  <!-- A bean definition with initialization method -->
  <bean id="..." class="..." init-method="...">
    <!-- collaborators and configuration for this bean go here -->
  </bean>
 
  <!-- A bean definition with destruction method -->
  <bean id="..." class="..." destroy-method="...">
    <!-- collaborators and configuration for this bean go here -->
  </bean>
 
  <!-- more bean definitions go here -->
 
</beans>

bean的生命周期
Spring bean的生命周期是很容易理解。當一個bean實例化時,它可能需要執行一些初始化把它轉換成可用狀態。類似地,當bean不再需要,并且從容器中取出,一些清理的工作可能也需要做。

不過,還有把bean背后的實例化和銷毀時間之間的場景發生的活動,但是本章將只討論其中兩個是需要在bean的初始化和銷毀的時候,重要bean的生命周期回調方法。

要定義安裝和拆卸一個bean,我們只是聲明了初始化方法和/或銷毀,方法的參數<bean>。在init-method屬性指定一個方法,是被調用bean后立即實例化。同樣,銷毀方法規定了被調用當bean被從容器中取出之前的方法。

初始化回調:
org.springframework.beans.factory.InitializingBean 接口指定一個單一的方法:

void afterPropertiesSet() throws Exception;
因此,可以簡單地實現上述接口和初始化工作可以在里面afterPropertiesSet() 方法,如下所示:

?
1
2
3
4
5
public class ExampleBean implements InitializingBean {
  public void afterPropertiesSet() {
   // do some initialization work
  }
}

在基于XML的配置元數據的情況下,可以使用init-method 屬性來指定具有void無參數簽名的方法的名稱。例如:

?
1
2
<bean id="exampleBean"
     class="examples.ExampleBean" init-method="init"/>

下面是類的定義:

?
1
2
3
4
5
public class ExampleBean {
  public void init() {
   // do some initialization work
  }
}

銷毀回調
org.springframework.beans.factory.DisposableBean接口指定一個單一的方法:

?
1
void destroy() throws Exception;

因此,你可以簡單地實現上述接口和定稿工作可以做里面的destroy() 方法,如下所示:

?
1
2
3
4
5
public class ExampleBean implements DisposableBean {
  public void destroy() {
   // do some destruction work
  }
}

在基于XML的配置元數據的情況下,您可以使用destroy-method屬性來指定具有void無參數簽名的方法的名稱。例如:

?
1
2
<bean id="exampleBean"
     class="examples.ExampleBean" destroy-method="destroy"/>

下面是類的定義:

?
1
2
3
4
5
public class ExampleBean {
  public void destroy() {
   // do some destruction work
  }
}

如果您在非web應用環境中使用Spring的IoC容器,例如在桌面富客戶端環境; 注冊關閉鉤子在JVM中。這樣做可以確保正常關機,并讓所有的資源都被釋放調用singleton bean上的相關destroy方法。

建議不要使用的InitializingBean或者DisposableBean的回調,因為XML配置提供極大的靈活性在命名你的方法方面。

例如:
使用Eclipse IDE,然后按照下面的步驟來創建一個Spring應用程序:

詳解Java的Spring框架中bean的定義以及生命周期

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产视频a区 | 亚洲老头老太hd | 精品久久久久久久久久久 | 喜爱夜蒲2三级做爰 | 好大好爽好硬我要喷水了 | 日本高清视频网址 | voyeur 中国女厕 亚洲女厕 | 星星动漫无删减在线观看 | 亚洲视频在线一区二区三区 | 国产成人精品日本亚洲网址 | 996免费视频国产在线播放 | 海绵宝宝第二季全集免费观看 | 青草草在线 | a片毛片在线免费看 | 狠狠草视频 | 72张让男人一看就硬的图片 | 欧美成人另类人妖 | 深夜福利影院 | 99精品视频在线观看免费 | 国产大秀视频 | 成人精品一区二区三区 | 成人久久18网站 | 国产好痛疼轻点好爽的视频 | 日韩亚洲欧美理论片 | 亚洲一区二区精品推荐 | 古代双性美人被老糟蹋 | 国产精品亚洲片在线观看麻豆 | 91短视频在线免费观看 | 911爱豆传媒国产 | 国产亚洲精品美女 | 好爽好舒服视频 | 亚洲29p | 亚洲第一色视频 | 亚洲精品二三区伊人久久 | 日本卡一卡2卡3卡4精品卡无人区 | 免费α片 | 成人免费视频一区二区 | 亚洲天堂影视 | 全黄h全肉细节文在线观看 全彩成人18h漫画 | 韩国一大片a毛片女同 | 国产精品亚洲午夜一区二区三区 |