Dagger2 - когда @Component зависит от @Subcomponent - PullRequest
0 голосов
/ 19 сентября 2019

Да, я понимаю, что @Component не может и не должен зависеть от @Subcomponent.

Но вот проблема: у меня есть AppComponent, который имеет RetrofitModule для аутентификациизвонки через OAuth 2 Мне нужно добавить информацию о сеансе для каждого звонка.Поэтому я создал Interceptor, который добавляет этот сеанс в заголовки.Приложение может иметь несколько сеансов в течение своего жизненного цикла, поэтому я думаю, что имеет смысл поставить SessionComponent как @Subcomponent.

Вот иерархия компонентов и модулей.

                                AppComponent
                                    |
       -----------------------------------------------------------
       |                            |                            |
RetrofitModule               SessionKeyModule            SessionSubcomponent
        |                                                        |
OkHttpClientModule                                  ---------------------------------
        |                                           |                               |
OkHttpSessionInductionInterceptorModule   SignatureGeneratorModule         CurrentSessionModule
  • SessionGeneratorModule требует информацию от SessionKeyModule и CurrentSessionModule.

  • OkHttpSessionInductionInterceptorModule зависит от SessionKeyModule и нуждается в получении сеанса из CurrentSessionModule.

И здесь кроется проблема;@Component не может зависеть от @Subcomponent.Так как мне получить подпись в перехватчике?Я чувствую , как будто мне нужно внести изменения в иерархию там, но я понятия не имею, как.Или как-то возможно @Component использовать информацию из @Subcomponent.

...