在Spring bean工廠中使用循環依賴關係有哪些缺陷? 例如製作豆製品工廠A取決於B和B取決於A?Spring beanfactory中的循環依賴關係
0
A
回答
1
如果您使用setter或fields創建循環依賴關係,那麼確實沒有太多問題。如果初始化依賴於這些依賴關係,那麼init必須在所有bean被構建和注入之後完成。
如果它們是構造函數注入的,那麼顯然不可能創建結果對象。但是,例如, Guice的確如此,你可以通過向其中一個bean注入一個「shell」代理:當構造需要B的A時,你創建一個空的B的pass-through-proxy,並注入它。然後你構造B,給它適當的A.然後你回到代理並將B放入代理。所以現在你在A中沒有真實的B,而是B的代理。這可能或可能不是問題。我傾向於不喜歡這個,發現結果不可預測。
此外,循環依賴關係(循環依賴關係)還包括循環依賴關係指向壞的建築。您應該能夠構造不帶圓圈的整個代碼圖:依賴關係圖應該是DAG - 有向無環圖。違反此規定時您應該得到一個錯誤! (但是,注入器顯然必須嘗試整理DAG,然後從葉節點開始向上,Guice完全不這樣做,即使打開「不使用代理」,也是隨機獲得的代理或不代理,即使你不應該需要它。如果你打開該選項,它只是隨機拋出,使選項絕對毫無價值..
相關問題
- 1. Spring中的循環依賴關係
- 2. 循環依賴關係?
- 3. C++循環依賴關係
- 4. 循環依賴關係
- 5. Hudson循環依賴關係
- 6. Python循環依賴關係
- 7. SQL循環依賴關係
- 8. 循環依賴關係
- 9. 依賴關係排序與循環依賴關係的檢測
- 10. 連接依賴關係時的循環依賴關係
- 11. Python中的循環依賴關係
- 12. Eclipse中的循環依賴關係CDT
- 13. SOA中的循環依賴關係
- 14. 3NF中的循環依賴關係
- 15. Gerrit中的循環依賴關係
- 16. ES6/7中的循環依賴關係
- 17. PostgreSQL設計依賴關係樹沒有循環依賴關係
- 18. 使用Spring Boot的RESTful API中的循環依賴關係
- 19. XML的循環依賴關係
- 20. 類之間的循環依賴關係
- 21. 與ninject的循環依賴關係
- 22. 類的循環依賴關係
- 23. 多個循環依賴關係C++
- 24. boost :: shared_ptr循環依賴關係
- 25. Android循環gradle依賴關係
- 26. 處理循環依賴關係
- 27. json_pure/rubygems循環依賴關係
- 28. 解決Clojure循環依賴關係
- 29. 循環依賴關係 - 再次
- 30. AngularJS指令與循環依賴關係
爲什麼你想這樣做? – 2013-07-26 06:59:01
@Tichodroma我我知道我們避免這樣做,但我有一個可能有用的例子,在決定之前我只想得到一些意見 – Mangoose