簡體   English   中英

Spring bean,XmlWebApplicationContext中的生命周期(Web上下文)

[英]Spring beans, Lifecycle in a XmlWebApplicationContext (web context)

我已經找到了關於這個問題的上一個SF問題,我相信設置init-methoddestroy-method屬性就足夠了。 但我希望以一種不同的方式提出這個問題以進一步理解。

如果我理解正確,那么實現org.springframework.context.Lifecycle的類在Web應用程序上下文(即org.springframework.web.context.support.XmlWebApplicationContext )中的行為將與其他應用程序上下文中的行為不同? 它將執行此操作,因為XmlWebApplicationContextstart() (將啟動包含的Lifecycle bean)將在加載上下文配置文件之前執行。

這個對嗎?

我不這么認為。 start()方法由doStart()調用,兩者都在AbstractApplicationContext ,后者是所有應用程序上下文的超類。 所以應該沒有區別。

Lifecycle接口應該由想要參與容器生命周期的bean實現。 這主要是由容器本身實現的(參見此處的文檔 ),盡管這些容器中的bean也可以在他們選擇時實現它,並且啟動/停止信號將傳播給它們。

start()stop()方法本質上是容器剛剛開始啟動或即將停止的通知。

對於應用程序組件,我很難為此找到一個好的用例。 業務對象應該只關注自己的生命周期,而不是容器的生命周期。 一個很好的理由是當你使用非單例范圍(例如請求范圍)時,bean的生命周期獨立於容器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM