android– 通过组件依赖项公开Multibinding

android– 通过组件依赖项公开Multibinding,第1张

概述我目前正在开发一个多模块应用程序.基本上有4个模块:>带有UI的app模块>契约模块与模型/接口>具有实际业务逻辑的实现模块>依赖注入模块,允许为应用程序提供实现这意味着应用程序不直接依赖于实现模块.我基本上有以下设置:应用程序组件@Component(dependencies={

我目前正在开发一个多模块应用程序.
基本上有4个模块:

>带有UI的app模块
>契约模块与模型/接口
>具有实际业务逻辑的实现模块
>依赖注入模块,允许为应用程序提供实现

这意味着应用程序不直接依赖于实现模块.

我基本上有以下设置:

应用程序组件

@Component(        dependencIEs = {                BaseComponent.class        },        modules = {                AndroIDInjectionModule.class,                AndroIDSupportInjectionModule.class,                ContributesAndroIDInjectorModule.class        })@ApplicationScopepublic interface ApplicationComponent extends AndroIDInjector<MyApplication> {    @Component.Builder    interface Builder {        Builder baseComponent(BaseComponent baseComponent);        ApplicationComponent build();    }}

基本组件

@Component(        modules = {                ...        })@Singletonpublic interface BaseComponent {    @Component.Builder    interface Builder {        @BindsInstance        Builder context(@ApplicationContext Context context);        @BindsInstance        Builder configuration(AppConfiguration configuration);        BaseComponent build();    }    ExposedDependency exposedDependency();}

这个设置工作得很好,除了使用安装在BaseComponent中的@ContributesAndroIDInjector的模块:我没有找到一种方法让包含AndroIDInjector的地图暴露在BaseComponent上并添加到ApplicationComponent.

有没有办法在BaseComponent中公开某种类型的地图,以便将AndroIDInjectors添加到ApplicationComponent?

(我会尝试将此问题提取到没有敏感信息的git仓库)

解决方法:

不是一个直接的答案,但我最终在我的业务逻辑模块中制作抽象活动/片段/服务,并在DI模块中制作具体类.

具体类从应用程序获取一个组件并使用它来注入依赖项.

几乎与AndroIDInjector之前的旧Dagger方式……

总结

以上是内存溢出为你收集整理的android – 通过组件依赖项公开Multibinding全部内容,希望文章能够帮你解决android – 通过组件依赖项公开Multibinding所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存