Spring Bean 生命週期詳解【附編碼示例】

已發表: 2020-08-12

Bean 是應用程序中的一個對象。 一個 bean 被創建、使用並最終在其目的結束時被銷毀。 這些是彈簧生命週期的不同階段。 整個 Spring bean 生命週期由 Spring IoC(控制反轉)容器監督。 這就是為什麼這些豆子被稱為春豆。

資源

目錄

Spring Bean 的生命週期

資源

在 Spring bean 生命週期中,首先實例化一個 bean。 在實例化之後,bean 在準備好使用之前會經過一系列步驟。 當某個 bean 不再需要任何功能時,它就會被銷毀。

閱讀:初學者的 18 個令人興奮的春季項目創意和主題

Spring bean生命週期可以通過以下方式控制

  • 通過使用實例化:
  • InitializingBean 回調接口。
  • bean 配置文件中的自定義 init() 方法。
  • 感知不同操作的接口。
  • PostConstruct 和 PreDestroy 註釋。
  • 破壞
  • DisposableBean 回調接口
  • bean 配置文件中的自定義 destroy() 方法。

一個bean的實例化

spring bean 生命週期中的第一個過程是實例化。 bean 的創建依賴於 JAVA 或 XML bean 配置文件。 這可以通過兩種方式完成。

他們是:

  • InitializingBean 回調接口:這種方式的實例化是在一個名為 afterPropertiesSet() 的方法中完成的。 此方法存在於org.springframework.beans.factory.InitializingBean 接口中。 在下面的程序中,創建了一個實現該接口的類。 這允許在創建的類中使用該接口的 afterPropertiesSet() 方法。

以下是描述此實例化過程的程序

導入 org.springframework.beans.factory.InitializingBean;

公共類 Creatingbean 實現 InitializingBean

{

@覆蓋

public void afterPropertiesSet() 拋出異常

{

// 初始化 Bean

}

}

  • 在 bean 配置文件中自定義創建的實例化方法:在此過程中,使用基於 XML 的配置文件。 該文件的 init-method 用於具體命名實例化方法。 該方法在類中用於 bean 實例化。 單個 bean 的本地定義如下所示。 這樣,我們就可以創建一個單一的bean。

豆類.xml:

<豆類>

<bean id=”creatingbean” 類=”com.workinginjava.work.Creatingbean”

init-method=”createInit” ></bean>

</beans>

退房:前 7 名令人興奮的 Spring Boot 項目和初學者主題

下面是通過加載 beans.xml 來描述這個實例化過程的程序

包 com.workinginjava.work;

公共類Creatingbean

{

公共無效創建初始化()

//自定義創建的init方法用於實例化一個bean

}

感知接口: Spring Framework 基礎設施提供了幾個感知接口。 這些接口向創建的 bean 灌輸某些不同的行為。

一些重要的感知接口包括:

  • BeanFactoryAware: setBeanFactory() 提供對創建對象的 bean 工廠的訪問。
  • BeanNameAware: BeanNameAware 接口下的setBeanName() 方法提供bean 的名稱。
  • ApplicationContextAware:這個特定接口下的setApplicationContext()方法提供了bean的ApplicationContext。

PostConstruct 和 PreDestroy 註釋: PostConstruct 是一個帶註釋的方法。 它在 bean 構造之後和請求對象之前調用。 PreDestroy 也是一種帶註釋的方法。 它在 bean 銷毀之前被調用。

以下程序描述了註解的使用

導入 javax.annotation.PostConstruct;

導入 javax.annotation.PreDestroy;

公共類 BeanWork

{

@PostConstruct

公共無效創建初始化()

{

//初始化bean(PostConstruct)

}

@PreDestroy

公共無效創建銷毀()

{

//銷毀bean(PreDestroy)

}

}

createInit() 和 createDestroy() 是自定義創建的 bean 初始化和銷毀方法。 這是使用 XML bean 配置文件完成的。

一顆豆子的毀滅

spring bean 生命週期中的最後一個過程是銷毀過程。 這是移除 bean 的過程。 bean 的刪除依賴於 JAVA 或 XML bean 配置文件。

這可以通過兩種方式完成

  • DisposableBean 回調接口: Disposal 在名為 destroy() 的方法中完成。 此方法存在於org.springframework.beans.factory.DisposableBean 接口中。 在下面的程序中,創建了一個實現該接口的類。 這允許在創建的類中使用該接口的 destroy() 方法

以下是描述此實例化過程的程序

導入org.springframework.beans.factory.DisposableBean;

公共類 Destroyingbean 實現 DisposableBean

{

@覆蓋

公共無效銷毀()拋出異常

{

// Bean 被銷毀

}

}

  • 在 bean 配置文件中自定義創建的銷毀方法:這裡使用基於 XML 的配置文件。 該文件的destroy-method用於具體命名銷毀方法。 然後在類中使用此方法來銷毀 bean。 單個 bean 的本地定義和銷毀它的步驟如下所示。

豆類 xml:

<豆類>

<bean id=”destroyingbean” 類=”com.workinginjava.work.Destroyingbean”

destroy-method="createDestroy" ></bean>

</beans>

以下是通過加載 beans.xml 來描述此銷毀過程的程序:

包 com.workinginjava.work;

公共類 Destroyingbean

{

公共無效創建銷毀()

//自定義銷毀方法用於銷毀一個bean

}

Spring bean 是為特定目的而創建的。 因此,每個 bean 都會經歷一個獨特的春季生命週期。 spring bean 生命週期的開始和結束有兩種方式。 如果使用 InitializingBean 和 DisposableBean 接口,則將代碼綁定到 Spring。 更好的方法是在 bean 配置文件中識別 init-method 和 destroy-method。

另請閱讀:印度春季開發人員薪水:適合新人和有經驗的人

從世界頂級大學在線學習軟件開發獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

包起來

這些關於 spring bean 生命週期的觀點可能會回答一些問題。 儘管如此,他們還是為你提出了新的問題——對於一個有抱負的全棧開發人員和 spring 框架的使用,有哪些資源? 這個領域的範圍是什麼? 而且,最重要的是,如何在這個領域建立職業生涯?

如果您有興趣了解有關全棧開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發 PG 文憑,該文憑專為在職專業人士設計,提供 500 多個小時的嚴格培訓、9 個以上的項目和作業, IIIT-B 校友身份,實用的實踐頂點項目和頂級公司的工作協助。

踏上夢想的工作

升級和 IIIT-BANGALORE 的軟件開發 PG 文憑
了解更多