Dagger2-当@Component依赖于@Subcomponent时

时间:2019-09-19 06:54:45

标签: java android dagger-2

是的,我知道@Component不能也不应该依赖@Subcomponent

但是,这是问题所在:我有一个AppComponent,其中有一个RetrofitModule用于通过 OAuth 2 对我的呼叫进行身份验证,我需要为每个呼叫添加会话信息。因此,我创建了一个Interceptor,它将该会话附加到标题中。该应用在其生命周期内可以有多个会话,因此我认为将SessionComponent设置为@Subcomponent是有意义的。

这是组件和模块的继承结构。

                                AppComponent
                                    |
       -----------------------------------------------------------
       |                            |                            |
RetrofitModule               SessionKeyModule            SessionSubcomponent
        |                                                        |
OkHttpClientModule                                  ---------------------------------
        |                                           |                               |
OkHttpSessionInductionInterceptorModule   SignatureGeneratorModule         CurrentSessionModule
  • SessionGeneratorModule需要来自SessionKeyModuleCurrentSessionModule的信息。

  • OkHttpSessionInductionInterceptorModule依赖于SessionKeyModule,需要从CurrentSessionModule获取会话。

问题就在这里; @Component不能依赖@Subcomponent。那么如何在拦截器中获取签名?我感觉像我需要更改那里的层次结构,但我不知道如何。还是@Component可以使用@Subcomponent中的信息。

0 个答案:

没有答案