#java #dependency-injection #dagger
#java #внедрение зависимостей #dagger
Вопрос:
У меня есть простой сервис:
public class AccountService implements IAccountService {
@Inject
IAccountDAO accountDAO;
}
Этот класс предоставляется моим модулем:
@Module(library = true )
public class ServiceModule {
@Provides @Singleton
IAccountService provideAccountStoreService(IAccountDAO accountDAO) {
IAccountService service= new AccountService();
//Somehow set the accountDAO inside service
return service;
}
@Provides @Singleton
IAccountDAO accountDAO provideAccountDAO() {
return new AccountDAO();
}
}
Есть ли способ заставить dagger выполнять инъекцию в «сервис» после того, как я верну его и до того, как он будет введен в какой-либо другой объект?
Ответ №1:
Хорошо, это было проще, чем я думал (и на самом деле показано в качестве примера на домашней странице dagger):
@Module(library = true )
public class ServiceModule {
@Provides @Singleton
IAccountService provideAccountStoreService(AccountService service) {
return service;
}
@Provides @Singleton
IAccountDAO accountDAO provideAccountDAO() {
return new AccountDAO();
}
}