簡體   English   中英

Guice設計模式:要求顯式綁定的任何優點?

[英]Guice design patterns: Any advantages to requiring explicit bindings?

我對Guice比較新,所以這可能是個基本問題。 看起來Guice可以選擇要求顯式綁定 要求顯式綁定有明顯的優勢嗎? 有人經常在實踐中使用此選項嗎?

我們在實踐中使用此選項。 我們僅使用Guice將應用程序連接在一起,而不是用於任何類型的每請求對象構造。 因此,我們的大多數綁定都在Singleton范圍內 - 例如,我們希望我們的業務邏輯和統計接口都能夠處理相同的持久層對象。

在沒有明確綁定的情況下,Guice將嘗試使用JIT綁定來滿足注入點。 此綁定將在“無范圍”范圍內完成,該范圍為每個注入點提供新的對象實例。 這幾乎不是我們想要的,並導致奇怪的運行時錯誤。 強制顯式綁定迫使人們思考並枚舉每個綁定的范圍。

我最近經歷了一個1小時的調試會話,因為我們沒有使用此配置。 問題是當我預期默認單身時會創建多個實例。 強制顯式綁定是一個很好的提醒,可以考慮它是否應該是單例。

我也花了幾個小時進行調試。 原因是我忘了將具體類的綁定添加到單例范圍。 為了總是有明確的綁定,我使用了一個答案如何阻止Guice注入未綁定在模塊中的類? (不是當前選擇的): binder().requireExplicitBindings(); (在AbstractModule的configure方法中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM