Spring Bean 生命週期詳解【附編碼示例】
已發表: 2020-08-12Bean 是應用程序中的一個對象。 一個 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 校友身份,實用的實踐頂點項目和頂級公司的工作協助。