我正在學習Spring Core認證,我對Spring如何處理豆生命週期,特別是關於豆後期處理器存在一些懷疑。Spring bean後期處理器的工作原理如何?
所以我有這樣的模式:
這對我來說是很清楚這意味着什麼:
進入加載bean定義階段發生的是:
@Configuration類是進程ed和/或@組件是 掃描的和/或XML文件被解析。
加入的BeanFactory豆定義(其ID下的每個索引)
特別的BeanFactoryPostProcessor豆調用時,它可以修改任何bean的定義(例如用於財產佔位符值替換)。
然後在豆創建階段恰巧:
每個bean急切默認實例(按正確的順序創造了它的依賴注入)。
在依賴注入之後,每個bean都會經過後期處理 階段,在該階段中可能會發生進一步的配置和初始化。
經過後處理的bean被完全初始化並準備使用(通過其ID追蹤,直到上下文被銷燬)
好吧,這對我來說是很清楚的,我也知道,有兩種類型的bean後置處理器的是:
初始值設定:如果指示初始化豆(即@PostConstruct)。
其餘全部:,允許額外的配置和之前或初始化步驟
後運行,並且我張貼這張幻燈片:
所以對我來說非常清楚初始化程序 bean post pr (它們是用註釋方法註解的方法,並且在setter方法之後立即被自動調用(所以在依賴注入之後),並且我知道我可以用來執行一些初始化批處理(就像在前面的例子)。
但是究竟代表了其他bean後期處理器?什麼意思是在初始化階段之前或之後執行?
所以我的bean被實例化,並執行依賴注入,然後初始化階段被執行(通過執行一個註解方法)。什麼意思是在初始化階段之前執行Bean Post Processor?這意味着它發生在註釋的方法執行之前嗎?所以int意味着它可能發生在依賴注入之前(在調用setter方法之前)?
究竟意味着它在初始化步驟後執行。這意味着它發生後,執行一個@PostContruct註釋的方法,或者什麼?
我可以輕易猜出了我的頭上,爲什麼我需要一個@PostContruct annoted方法,但我想不出其他類型bean後置處理器的一些典型的例子,你能告訴我在使用時的一些典型例子?
TNX
一個真實的例子的榮譽! – raiks
感謝您提供實際使用案例,而不僅僅是理論 –