2016-10-12 135 views
2

我正在使用Spring Boot應用程序,並試圖驗證在啓動時創建某些Bean的順序。至於我可以通過調試所知,這是正在發生的事情:在我Configuration類中定義在Spring Boot中創建Bean的順序

  1. 豆被初始化。
  2. 初始化自動配置類中定義的Bean。
  3. 註解爲@Component的類已初始化。

步驟1和步驟2對我有意義,因爲這符合Spring Boot的文檔auto configuration

我不明白的是@Component帶註釋的類是最後故意初始化的,還是僅僅是巧合。當它不是什麼時,我不想依賴這個作爲「特徵」。

+0

它們*一般*不應該,因爲您的組件掃描的bean應該覆蓋自動配置。 – chrylis

回答

0

我認爲一般來說,創建什麼豆時不應該擔心。您將觀察到依賴於其構造函數中的其他bean依賴項的Bean將在它的依賴關係之後創建,但這非常重要。

您的觀察者以外的任何模式或行爲都不應該依賴於您的邏輯。你確實可以找到一種模式,但是這種行爲在未來可能會改變,儘管我不知道這種模式會發生多大的可能性。

+0

我認爲這是正確的答案,至少對於我的情況。原來的問題出自一個早期的問題,它看起來像某些豆因爲尚未創建而無法自動裝配。這個問題似乎在許多重構之後消失了,這讓我相信,正如這個答案所述,創建bean的順序不是問題的關鍵,而是我在做的事情。 –

相關問題