我剛剛瞭解到依賴注入(DI),我開始喜歡它。爲了注入依賴關係,我使用了Google Guice框架。一切都運行良好,但在編寫模塊時,我想到如果我的模塊需要依賴作爲構造函數,畢竟它只是一個擴展AbstractModule的類。因此,基本上,我有3個模塊作爲一個整體。如何注入依賴關係,如果你的模塊本身將參數作爲構造函數?
環境模塊
public class EnvModule extends AbstractModule { @Override protected void configure() { install(new Servicemodule()); } }
ServiceModule
public class ServiceModule extends AbstractModule { private final boolean isEnabled; @Override protected void configure() { if (isEnabled) { install (new ThirdModule()); } }
- ThirdModule(它不採取任何構造的任何參數,並具有自己的一些綁定)
基本上,服務模塊中的變量定義了我的應用程序是否需要安裝第三個模塊。該變量在應用程序配置文件中定義。那麼如何在ServiceModule中注入該變量?由於該字段是最終的,setter注入是不可能的,有沒有辦法使用施工注入或現場注入來注入值。
您可以在Module類中擁有自己的參數化構造函數並傳入布爾值。 –