我有一个问题。
为了分离我的组件并仅负责应用程序的特定部分,我使用不同的组件。
例如,在我的情况下,我有应用程序组件和 UserSessionComponent 。我需要在主Application类中注入依赖项。
这是代码
@PerApplication
@Component(modules = {ApplicationModule.class,UtilsModule.class, DbModule.class})
public interface ApplicationComponent {
// Injection methods
void inject(MainApplication mainApplication);
}
用户会话组件
@PerUserSessionScope
@Component(dependencies = {ApplicationComponent.class}, modules = {UserSessionCommonModule.class, UserSessionModule.class})
public interface UserSessionComponent {
void inject(MainApplication mainApplication);
}
在 MainApplication 类中,我有以下依赖项。
@Inject
protected UserSessionManager mUserSessionManager;
在编译 ApplicationComponent 无法提供所需的依赖关系时抛出错误,这是显而易见的。
注射按以下方式进行
@Override
public void onCreate() {
super.onCreate();
mApplicationComponent = DaggerApplicationComponent
.builder()
.applicationModule(new ApplicationModule(this))
.build();
mApplicationComponent.inject(this);
initUserSession();
}
所以问题是如何在同一类中注入多个组件时调用inject方法。