爲什麼bean初始化是在setter方法之後完成的?我認爲初始化最好在setter方法完成之前完成 - 就像在進行驗證以確保將值設置爲實例成員之前一樣好
爲什麼beanPostProcessor在具有beforeInitialization方法後會考慮初始化?
0
A
回答
1
從我的理解,制定者等的電話被認爲是動作設置bean的初始狀態。沒有bean集的初始狀態,你不能做任何有意義的初始化。試想一下,如果在setter之前完成初始化會發生什麼:(假設我們使用setter注入,而不是ctor注入)通過調用默認ctor創建bean,然後調用初始化,然後初始化什麼?這個bean只是一個沒有正確注入依賴關係的空白對象。如果你可以在這種情況下進行初始化,那麼這種初始化可以簡單地放在你的ctor中。
對於BeanPostProcessor,我相信「後」不是指後初始化。在創建bean(即創建後)後,您只需要進行後處理即可。由於通常在兩個不同的時間進行這種後期處理,這是在bean初始化之前和之後。因此,這兩種方法。
0
- 所以初始化可以使用這個bean設置的值。
- 因爲這是一個後處理器。
相關問題
- 1. 初始化方法調用
- 2. 爲什麼objectAnimator不調用setter方法
- 3. Guice在初始化對象後調用初始化方法
- 4. 如何調用春代理方法一次初始化
- 5. 由Interface Builder初始化UITableViewCell時調用什麼方法?
- 6. Ruby:調用初始化方法
- 7. 從初始化調用實例方法
- 8. Apache CXF初始化的調用方法
- 9. 爲什麼無法調用初始化圖形的代碼?
- 10. 爲什麼在Javascript調用方法比調用的getter/setter方法
- 11. 爲什麼它調用原始方法?
- 12. 春天初始化順序
- 13. 爲什麼使用make_unique調用來初始化unique_ptr?
- 14. 不清楚爲什麼初始化方法被調用了一些類
- 15. 添加方法調用setter(序列化)
- 16. 超級初始化後的JavaFx調用超級方法
- 17. 如何在ruby初始化後立即調用方法?
- 18. 如何自動調用按鈕的方法初始化後?
- 19. 初始化調用deleteLater後立即()
- 20. 在Ajax調用後初始化js
- 21. 爲什麼self.view調用子視圖setter方法?
- 22. 爲什麼不調用指定的初始化程序
- 23. 爲什麼Swift調用錯誤的初始化器?
- 24. 爲什麼我的UIViewController初始化程序從未調用?
- 25. 初始化數組作爲參數時調用方法
- 26. Setter方法不被調用
- 27. 調用getter和setter方法
- 28. [SKAction scaleXTo:duration:]爲什麼不調用xScale setter?
- 29. 爲什麼調用了uid-getter/setter(ArrayCollection)?
- 30. 從ruby初始化調用方法時未定義的方法
那麼爲什麼在postProcessor中有一個名爲beforeInitialization的方法? beforeInitialization這個詞意味着在初始化之前,如果你在它上面添加一個跟蹤,這個方法在bean初始化方法 – yapkm01 2013-03-07 02:21:31
@ yapkm01之前被執行了我認爲你不清楚後處理器適合bean生命週期的位置,但阿德里安的回答應該有助於明確這一點。 – 2013-03-07 02:50:15