如何注入依赖关系"之间"带有Dagger2的Android模块(2.15)

时间:2018-03-29 07:44:53

标签: android dependency-injection dagger-2

我当前的Android项目包含以下模块

1)。主要应用程序

2)。 Android模块A

3)。 Android模块B

4)。 Java模块C

5)。 Android模块D

我使用Dagger 2 (v2.15)作为我的DI框架。

我正在尝试注入以下依赖项: -

将Android模块A实例注入主应用程序

将Java模块C实例注入主应用程序

将Android模块D实例注入主应用程序

将Android模块B实例注入Android模块A

每个模块都有以下两个与Dagger相关的类/接口

@Module
public class ModuleX {

    @Singleton
    @Provides
    static ClassX provideClassX() {
        return new ClassXImpl();
    }

}


@Singleton
@Component(modules = {ModuleX.class})
public interface ClassXComponent {


}

我的主应用程序具有以下与Dagger相关的类/接口

@Module
public abstract class MainActivityModule {
    @ContributesAndroidInjector
    abstract MainActivity contributeMainActivity();

    @ContributesAndroidInjector
    abstract Second contributeSecond();
}


@Singleton
@Component(modules = {
        AndroidInjectionModule.class,
        MainActivityModule.class,
        ModuleA.class,
        ModuleB.class,
        ModuleC.class,
        ModuleD.class})
public interface AppComponent {

    @Component.Builder
    interface Builder {
        @BindsInstance
        Builder application(Application application);

        AppComponent build();
    }

    void inject(MyApplication myApplication);
}

除了注入之外,此配置还成功注入了我所需的所有依赖项 Android模块B实例进入Android模块A. Dagger2是否可以注入依赖项 "之间"模块?

为了达到理想的解决方案,我缺少什么?

0 个答案:

没有答案