Guice指南-自舉(Bootstrapping)你的應用
自舉(bootstrapping)對於依賴注入非常重要。總是顯式地向 Injector 索要依賴,這就將 Guice 用作了服務定位器,而不是一個依賴注入框架。
你的程式碼應該儘量少地和 Injector 直接打交道。相反,你應該通過注入一個根物件來自舉你的應用。容器可以更進一步地將依賴注入根物件所依賴的物件,並如此迭代下去。最終,在理想情況下,你的應用中應該只有一個類知道 Injector,每個其他類都應該使用注入的依賴關係。
例如,一個諸如 Struts 2 的 Web 應用框架通過注入你的所有動作類來自舉你的應用。你可以通過注入你的服務實現類來自舉一個 Web 服務框架。
依賴注入是傳染性的。如果你重構一個有大量靜態方法的已有程式碼,你可能會覺得你正在試圖拉扯一根沒有盡頭的線。這是好事情。它表明依賴注入正在幫助你改進程式碼的靈活性和可測試性。
如果重構工作太複雜,你不想一次性地整理完所有程式碼,你可以暫時將一個 Injector 的引用存入某個類的一個靜態的欄位,或是使用靜態注入。這時,請清楚地命名包含該欄位的類:比如 InjectorHack 和 GodKillsAKittenEveryTimeYouUseMe。記住你將來可能不得不為這些類提供偽測試類,你的單元測試則不得不手工安裝一個注入器。記住,你將來需要清理這些程式碼。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-214955/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Guice指南-用Guice實現依賴注入GUI依賴注入
- Guice指南-與 JNDI 整合GUI
- Guice指南-手工依賴注入GUI依賴注入
- Guice指南-入門認識GUI
- Guice指南-簡單工廠模式GUI模式
- Guice,叫我怎能不愛你?GUI
- AI實用指南:5分鐘搭建你自己的LLM聊天應用AI
- SQLLOAD應用舉例SQL
- oracle rollup,cube子句的應用舉例;Oracle
- 舉例說明你對尾遞迴的理解,有哪些應用場景遞迴
- TypeScript 列舉指南TypeScript
- 設計模式應用舉例設計模式
- golang Context應用舉例GolangContext
- Elasticsearch 中的 GuiceElasticsearchGUI
- Guice 示例GUI
- Google Guice的Binder介面GoGUI
- Java列舉類,你們用對了嗎?Java
- 這款全自動自適應工具你用過了嗎?autofit.js請求加入你的戰場!JS
- Electron 應用除錯指南除錯
- Lotus C API Extension Manager 應用舉例API
- TypeScript 中列舉型別的理解?應用場景?TypeScript型別
- Kaizen的應用,精益管理顧問舉例如下AI
- 再談多型--多型的應用舉例: (轉)多型
- R語言中管道符號 %>% 的應用 及 舉例R語言符號
- 聽說你用JavaScript寫程式碼?本文是你的機器學習指南JavaScript機器學習
- AC-DMIS測量程式應用舉例
- 並查集(Union-Find) 應用舉例並查集
- 寒假專案3-應用列舉(示例)
- ZwQuerySystemInformation列舉核心模組及簡單應用ORM
- WebSphere Remote Server 簡介及其應用舉例WebREMServer
- Vue 應用效能優化指南Vue優化
- PHP 應用效能優化指南PHP優化
- Angular應用效能優化指南Angular優化
- 構建現代Web應用的安全指南Web
- Guice學習心得GUI
- Guice與DWR整合GUI
- 初次認識GuiceGUI
- 適用於iOS的應用程式程式設計指南(七)iOS程式設計