ApplicationContextAware相對於Setter注入的優點是什麼。通過Setter注入,我們也可以從Spring Container獲取bean。ApplicationContextAware Vs安裝程序注入
1
A
回答
0
使用ApplicationContextAware
您可以獲得當前上下文的引用,以便您可以對其進行編輯,例如添加或刪除bean。通常這是一個壞主意,除了在某些測試場景中。
Spring還強調,與ApplicationContextAware
相比,使用setter的簡單POJO更依賴於Spring框架。
0
除非您確實需要,否則不應使用ApplicationContextAware
。如果您可以使用setter/field/constructor injection來支持您的所有業務需求,請不要使用ApplicationContextAware
。
有些人可能會試圖使用ApplicationContextAware
來獲取原型scoped bean的新實例(實際上BeanFactoryAware
已經足夠)。但有更好的工具,即lookup-method
。
0
0
在大多數scenaios,setter注入是完全以足夠的,它提供了一個更好的解決方案,幫助您保持實例之間的關係。因爲這些類不直接依賴容器,也就是說,它們是Pojos,不需要知道容器的存在,這會爲單元測試和將來的移植帶來很多便利。
如果您確實需要從容器中取出某些東西,例如對某些類型的bean進行某種增強,那麼是時候使用ApplicationContextAware了。通常,不建議通過實現ApplicationContextAware手動獲取類的依賴關係,特別是對於業務對象。他們不應該爲自己的組裝負責'。
相關問題
- 1. 構造函數注入vs安裝程序注入
- 2. 注入豆集合VS使用了ApplicationContextAware到getBeansOfType
- 3. 如何從VS安裝程序註冊COM +應用程序
- 4. 將變量注入NSIS安裝程序
- 5. WCF Unity中的安裝程序注入
- 6. MSI安裝程序VS 2008
- 7. 使用VS安裝程序在安裝過程中驗證用戶輸入
- 8. 安裝程序開發人員VS軟件包裝程序?
- 9. VS 2010安裝程序自定義languege
- 10. VS項目的安裝程序包
- 11. 安裝程序功能,WIX vs InstallShield Express
- 12. Web平臺安裝程序錯誤安裝VS Express
- 13. java嵌入式OS X應用程序VS系統安裝Java
- 14. 如何配置VS安裝程序將文件放入LocalApplicationData
- 15. VS 11不注意安裝位置
- 16. 通過NSIS安裝程序註冊BHO
- 17. MSI:安裝程序安裝程序
- 18. 在安裝/安裝程序包期間註冊
- 19. Windows安裝程序安裝
- 20. 代碼中的溫莎安裝程序注入
- 21. 陰影字段上的彈簧安裝程序注入
- 22. 如何讓我的安裝程序寫入HKCU註冊表樹?
- 23. 安裝程序注入與結構映射的問題
- 24. 如何編寫MSI安裝程序以寫入註冊表?
- 25. 安裝程序注入或環境上下文模式
- 26. 製作一個VS 2013 Express VB.Net程序的安裝程序
- 27. 安裝VS 2008
- 28. EJB封裝進口VS資源注入
- 29. 了ApplicationContextAware注入原型對象的單個對象
- 30. VS 2015中的Visual Studio 2012安裝程序項目2015年安裝Visual Studio安裝程序項目後,「應用程序未安裝」
因爲我們需要很多實用bean,我們需要哪一種實用bean。您可以選擇哪一種實用bean。通過編寫大量setter/getters來避免類複雜 – cooper
如果您需要很多實用bean,您應該考慮bean是否具有正確的角色如果它做了太多的事情/負有太多的責任),或者是你的實用bean被分離到良好的邏輯組中。這樣你應該能夠減少不必要的依賴。我可以想到在任何生產bean中「ApplicationContextAware」的任何理由。 – vertti